设置布局的Alpha /不透明度

是否有可能设置和获得布局的Alpha /不透明度和所有的子视图? 我不是在谈论背景。 说一个video控件的集合,如相对布局中的播放,暂停和进度条。

我可以使用animation淡入淡出,但想知道是否有一个我可以使用的直接方法。

  • 标签像fileexploler一样
  • Google的滑块devise指南的实施
  • 当ArrayAdapter.isEnabled返回false时,ListView中消失的分隔符
  • Android:我如何访问默认的文字颜色? (没有主题,只是标准的一个)
  • Android - 调用GONE然后VISIBLE使视图显示在错误的地方
  • 编辑文本框中提示的自定义位置。
  • 如何在按下状态时移动button文本
  • 如何从EditText获取文本?
  • 你可以在布局上设置alpha,使用带有0持续时间的AlphaAnimation和setFillAfter选项来设置子节点(或者其他任何视图)。

    例:

    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.startAnimation(alpha); 

    您可以使用多个组件的一个animation来节省内存。 并重置()再次使用,或clearAnimation()放弃阿尔法。

    虽然它看起来粗糙和黑客实际上是一个很好的方法来设置alpha视图设置ov视图,不占用太多的内存或处理器时间。

    不知道获得当前的alpha值,但。

    这是一个适用于所有版本的方法( 感谢@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.startAnimation(animation); } else view.setAlpha(alpha); } 

    很明显,对于API小于11,如果你可以创build一个自定义的视图调用Canvas.saveLayerAlpha()之前绘制其子( 感谢@RomainGuy )。

    亚历克斯的解决scheme的作品,但另一种方法是创build一个自定义视图,在绘制子对象之前调用Canvas.saveLayerAlpha()。 请注意,在Android 3.0中有一个新的View.setAlpha()API 🙂

    现在,您可以使用ViewCompat.setAlpha(View, float)来执行此操作。

    对不起,我的答案,但如果你想要的alpha你可以使用ViewCompat类

    ViewCompat.setAlpha(View view,float alpha)

    ViewCompat在appcompat v4中