一、透明度的概念
透明度是指控制一个视图的不透明程度,取值范围从0到255,0表示完全透明,255表示完全不透明。
在开发中,我们经常需要改变一个视图的透明度,来达到一些特殊的效果,例如:滑动背景透明度,实现毛玻璃效果等。在这些情况下,透明度的改变非常重要。
二、如何设置透明度
在Android中,设置透明度有多种方法:
方法一:使用setAlpha()方法
view.setAlpha(0.5f);
使用setAlpha()方法可以直接设置透明度,参数范围从0~1之间,0表示完全透明,1表示完全不透明。
方法二:使用setBackgroundAlpha()方法
public static void setBackgroundAlpha(Activity activity, float alpha) { WindowManager.LayoutParams lp = activity.getWindow().getAttributes(); lp.alpha = alpha; activity.getWindow().setAttributes(lp); }
通过设置Activity的Window属性,可以实现调整整个Activity的透明度。
方法三:使用xml文件设置透明度
android:alpha="0.5"
在xml文件中可以使用alpha属性设置透明度,同样范围从0~1,但是只能在API 11以上使用。
三、透明度表的使用
在日常开发中,经常需要手动计算透明度数值,这是件费时费力的事情。透明度表的出现,可以方便快速的查找对应的透明度数值。
下面是透明度表的示例代码:
public class AlphaTable { private static final SparseArraysAlphaTable = new SparseArray (); static { sAlphaTable.put(0, 0.0f); sAlphaTable.put(1, 0.04f); sAlphaTable.put(2, 0.08f); sAlphaTable.put(3, 0.12f); sAlphaTable.put(4, 0.16f); sAlphaTable.put(5, 0.20f); sAlphaTable.put(6, 0.24f); sAlphaTable.put(7, 0.28f); sAlphaTable.put(8, 0.31f); sAlphaTable.put(9, 0.35f); // 省略241个数值...... sAlphaTable.put(251, 0.98f); sAlphaTable.put(252, 0.99f); sAlphaTable.put(253, 0.99f); sAlphaTable.put(254, 1.0f); sAlphaTable.put(255, 1.0f); } public static float getAlpha(int index) { return sAlphaTable.get(index, 0.0f); } }
使用透明度表可以非常方便的获取对应的透明度数值。只需要传入透明度的序号,就可以返回对应的透明度数值。
float alpha = AlphaTable.getAlpha(100); view.setAlpha(alpha);
四、总结
透明度是一个常用的开发属性,在Android中设置透明度有多种方法。使用透明度表可以方便快速的获取对应的透明度数值,提高开发效率。
希望本文对大家有所帮助,谢谢!