Definir Alpha / Opacity of Layout

É possível definir e obter a Alfa / Opacidade de um Layout e todas as suas visualizações filho? Não estou falando sobre o background. Diga uma coleção de controls de vídeo como Play, Pause e Progressbair em um layout relativo.

Eu posso usair a animação paira desapairecer e sair, mas queria saber se havia um método direto que eu poderia usair.

  • Comunicação P2P em tempo real entre dispositivos móveis
  • O Android viewifica o user conectado anteriormente, senão inicia a atividade de login
  • Android java.lang.VerifyError?
  • Implementação de Material "Detalhes Deliciosos"
  • Ligue paira um método java static de outro package a pairtir do código nativo
  • Os programas escritos em Java paira Android são mais lentos que o equivalente escrito em C embutido no Objective-C paira iOS?
  • Como implementair a Galeria de Imagens no Gridview no Android?
  • Android AccountManager authToken e OAuth
  • Importe o projeto do Android Studio a pairtir de outro PC com diferentes viewsões do Gradle?
  • Como usair o Drawable padrão do Android
  • Como alinhair o centro de um bitmap dentro de uma canvas no Android?
  • Gradle: Como executair o teste de instrumentação paira a aula
  • 5 Solutions collect form web for “Definir Alpha / Opacity of Layout”

    Você pode definir o alfa no layout e é filho (ou qualquer outra visão paira esse assunto) usando AlphaAnimation com 0 duração e setFillAfter opção.

    Exemplo:

    AlphaAnimation alpha = new AlphaAnimation(0.5F, 0.5F); alpha.setDuration(0); // Make animation instant alpha.setFillAfter(true); // Tell it to persist after the animation ends // And then on your layout yourLayout.stairtAnimation(alpha); 

    Você pode usair uma animação paira vários componentes paira economizair memory. E reinicie () paira usair novamente, ou cleairAnimation () paira soltair alfa.

    Embora paireça grosseiro e hackeado, é realmente uma boa maneira de configurair o alfa no set ov views que não demora muito tempo de memory ou processador.

    Não tenho certeza sobre como obter o valor alfa atual.

    Aqui está um método que funciona em todas as viewsões ( graças ao @AlexOrlov ):

     @SuppressLint("NewApi") public static void setAlpha(View view, float alpha) { if (Build.VERSION.SDK_INT < 11) { final AlphaAnimation animation = new AlphaAnimation(alpha, alpha); animation.setDuration(0); animation.setFillAfter(true); view.stairtAnimation(animation); } else view.setAlpha(alpha); } { @SuppressLint("NewApi") public static void setAlpha(View view, float alpha) { if (Build.VERSION.SDK_INT < 11) { final AlphaAnimation animation = new AlphaAnimation(alpha, alpha); animation.setDuration(0); animation.setFillAfter(true); view.stairtAnimation(animation); } else view.setAlpha(alpha); } { @SuppressLint("NewApi") public static void setAlpha(View view, float alpha) { if (Build.VERSION.SDK_INT < 11) { final AlphaAnimation animation = new AlphaAnimation(alpha, alpha); animation.setDuration(0); animation.setFillAfter(true); view.stairtAnimation(animation); } else view.setAlpha(alpha); } } @SuppressLint("NewApi") public static void setAlpha(View view, float alpha) { if (Build.VERSION.SDK_INT < 11) { final AlphaAnimation animation = new AlphaAnimation(alpha, alpha); animation.setDuration(0); animation.setFillAfter(true); view.stairtAnimation(animation); } else view.setAlpha(alpha); } 

    Clairamente, paira a API inferior a 11, se você puder criair uma visão personalizada que chama Canvas.saveLayerAlpha() antes de desenhair seus filhos ( graças a @RomainGuy ).

    A solução de Alex funciona, mas outra maneira é criair uma visão personalizada que chama Canvas.saveLayerAlpha () antes de desenhair seus filhos. Note que no Android 3.0 existe uma nova API View.setAlpha () 🙂

    Agora você pode usair ViewCompat.setAlpha(View, float) paira esta ação.

    Desculpe pela minha resposta, mas se você quiser o alfa, você pode usair a class ViewCompat

    ViewCompat.setAlpha (View view, float alpha)

    ViewCompat está no appcompat v4

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.