关键词

Android透明度表:快速选择对应的透明度值

一、透明度的概念

透明度是指控制一个视图的不透明程度,取值范围从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 SparseArray sAlphaTable = 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中设置透明度有多种方法。使用透明度表可以方便快速的获取对应的透明度数值,提高开发效率。

希望本文对大家有所帮助,谢谢!

本文链接:http://task.lmcjl.com/news/1641.html

展开阅读全文