Android設(shè)置改變透明度實(shí)例
在Android開發(fā)中,透明度是很常見的一個(gè)屬性,是指控制一個(gè)視圖的不透明程度,取值范圍從0到255,0表示完全透明,255表示完全不透明,通過設(shè)置透明度能夠?qū)崿F(xiàn)圖片、控件等UI元素的顯示效果的調(diào)整,Android透明度對(duì)照表是開發(fā)過程中常用的工具之一,它能夠幫助開發(fā)人員快速了解設(shè)置透明度的數(shù)值范圍。
如何設(shè)置透明度
在Android中,設(shè)置透明度有多種方法:
方法一:使用setAlpha()方法
view.setAlpha(0.5f);
使用setAlpha()方法可以直接設(shè)置透明度,參數(shù)范圍從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);
}通過設(shè)置Activity的Window屬性,可以實(shí)現(xiàn)調(diào)整整個(gè)Activity的透明度。
方法三:使用xml文件設(shè)置透明度
android:alpha="0.5"
在xml文件中可以使用alpha屬性設(shè)置透明度,同樣范圍從0~1,但是只能在API 11以上使用。
透明度表的使用
在日常開發(fā)中,經(jīng)常需要手動(dòng)計(jì)算透明度數(shù)值,這是件費(fèi)時(shí)費(fèi)力的事情。透明度表的出現(xiàn),可以方便快速的查找對(duì)應(yīng)的透明度數(shù)值。
下面是透明度表的示例代碼:
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個(gè)數(shù)值......
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);
}
}使用透明度表可以非常方便的獲取對(duì)應(yīng)的透明度數(shù)值。只需要傳入透明度的序號(hào),就可以返回對(duì)應(yīng)的透明度數(shù)值。
float alpha = AlphaTable.getAlpha(100); view.setAlpha(alpha);
透明度數(shù)值
透明度數(shù)值是指表示不透明度的一個(gè)值,取值范圍為0~255,其中0代表完全透明,255代表完全不透明。在設(shè)置透明度時(shí),我們會(huì)用到一個(gè)涉及到透明度數(shù)值的API。
//設(shè)置視圖的透明度,取值范圍0~1 view.setAlpha(float alpha); //設(shè)置視圖的透明度,取值范圍0~255 view.getBackground().setAlpha(int alpha);
在上面的代碼示例中,setAlpha()方法的參數(shù)為float類型,取值范圍是0~1,表示視圖的透明度。而getBackground().setAlpha()方法的參數(shù)為int類型,取值范圍是0~255,表示背景的透明度。
圖片透明度
對(duì)于Android應(yīng)用中的圖片,我們也可以設(shè)置它們的透明度,這可以通過在代碼中設(shè)置透明度來實(shí)現(xiàn),示例如下:
//獲取原圖 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); //根據(jù)原圖創(chuàng)建一個(gè)新圖,alpha參數(shù)為透明度 Bitmap newBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(newBitmap); Paint paint = new Paint(); paint.setAlpha(alpha); canvas.drawBitmap(bitmap, 0, 0, paint);
在上面的代碼示例中,我們通過調(diào)用Paint類的setAlpha()方法來設(shè)置圖片的透明度,alpha的取值范圍是0~255。
文本透明度
在Android應(yīng)用中,文本部分的透明度也是可以設(shè)置的。我們可以通過設(shè)置TextView或EditText的textColor屬性來實(shí)現(xiàn),示例如下:
//設(shè)置TextView的文本透明度,取值范圍0~255 text.setTextColor(Color.argb(alpha, 255, 255, 255)); //設(shè)置EditText的文本透明度,取值范圍0~255 editText.setTextColor(Color.argb(alpha, 255, 255, 255));
在上面的代碼示例中,我們通過調(diào)用argb()方法來設(shè)置文本的透明度,其中alpha的取值范圍是0~255,后面三個(gè)參數(shù)分別代表顏色的紅色、綠色和藍(lán)色值,這三個(gè)參數(shù)的取值范圍也是0~255。
背景透明度
對(duì)于應(yīng)用中的背景,我們也可以設(shè)置背景的透明度。這可以通過在布局文件中的根布局中添加透明度屬性來實(shí)現(xiàn),代碼示例如下:
//在根布局中添加透明度屬性 android:alpha="0.5"
在上面的代碼示例中,我們將根布局的透明度設(shè)置為0.5,這樣就可以實(shí)現(xiàn)背景的透明效果。
動(dòng)態(tài)改變透明度
在Android開發(fā)中,我們經(jīng)常需要在一定條件下動(dòng)態(tài)地改變視圖的透明度,這可以通過代碼來實(shí)現(xiàn),示例如下:
//獲得視圖的透明度值 float alpha = view.getAlpha(); //改變視圖的透明度值 view.setAlpha(alpha - 0.1f);
在上面的代碼示例中,我們通過調(diào)用getAlpha()方法獲取視圖的透明度值,并通過setAlpha()方法改變視圖的透明度值,從而實(shí)現(xiàn)動(dòng)態(tài)改變透明度的效果。
總結(jié)
到此這篇關(guān)于Android設(shè)置改變透明度實(shí)例的文章就介紹到這了,更多相關(guān)Android設(shè)置透明度內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android帶刷新時(shí)間顯示的PullToRefresh上下拉刷新
這篇文章主要為大家詳細(xì)介紹了Android帶刷新時(shí)間顯示的PullToRefresh上下拉刷新,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
Android ApplicationInfo 應(yīng)用程序信息的詳解
這篇文章主要介紹了Android ApplicationInfo 應(yīng)用程序信息的詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-10-10
Android 數(shù)據(jù)庫(kù)文件存取至儲(chǔ)存卡的方法
這篇文章主要介紹了Android 數(shù)據(jù)庫(kù)文件存取至儲(chǔ)存卡的方法的相關(guān)資料,需要的朋友可以參考下2016-03-03
詳解如何實(shí)現(xiàn)一個(gè)Kotlin函數(shù)類型
這篇文章主要為大家詳細(xì)介紹了如何實(shí)現(xiàn)一個(gè)Kotlin函數(shù)類型,文中的實(shí)現(xiàn)方法講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-10-10
詳解Android——藍(lán)牙技術(shù) 帶你實(shí)現(xiàn)終端間數(shù)據(jù)傳輸
藍(lán)牙技術(shù)在智能硬件方面有很多用武之地,本篇文章主要介紹了Android——藍(lán)牙技術(shù),實(shí)現(xiàn)兩個(gè)終端間數(shù)據(jù)的傳輸,有興趣的朋友可以了解一下。2016-12-12
Android實(shí)現(xiàn)一個(gè)比相冊(cè)更高大上的左右滑動(dòng)特效(附源碼)
這篇文章主要介紹了Android實(shí)現(xiàn)一個(gè)比相冊(cè)更高大上的左右滑動(dòng)特效(附源碼),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
詳解Android 通過Socket 和服務(wù)器通訊(附demo)
Android 通過Socket 和服務(wù)器通訊,是一種比較常用的通訊方式,這篇文章主要介紹了詳解Android 通過Socket 和服務(wù)器通訊,有興趣的可以了解一下。2016-12-12

