一、透明度的概念
透明度是指控制一個視圖的不透明程度,取值範圍從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中設置透明度有多種方法。使用透明度表可以方便快速的獲取對應的透明度數值,提高開發效率。
希望本文對大家有所幫助,謝謝!
原創文章,作者:XNFY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/142834.html