Android設(shè)置改變透明度實例
在Android開發(fā)中,透明度是很常見的一個屬性,是指控制一個視圖的不透明程度,取值范圍從0到255,0表示完全透明,255表示完全不透明,通過設(shè)置透明度能夠?qū)崿F(xiàn)圖片、控件等UI元素的顯示效果的調(diào)整,Android透明度對照表是開發(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屬性,可以實現(xiàn)調(diào)整整個Activity的透明度。
方法三:使用xml文件設(shè)置透明度
android:alpha="0.5"
在xml文件中可以使用alpha屬性設(shè)置透明度,同樣范圍從0~1,但是只能在API 11以上使用。
透明度表的使用
在日常開發(fā)中,經(jīng)常需要手動計算透明度數(shù)值,這是件費時費力的事情。透明度表的出現(xiàn),可以方便快速的查找對應(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個數(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); } }
使用透明度表可以非常方便的獲取對應(yīng)的透明度數(shù)值。只需要傳入透明度的序號,就可以返回對應(yīng)的透明度數(shù)值。
float alpha = AlphaTable.getAlpha(100); view.setAlpha(alpha);
透明度數(shù)值
透明度數(shù)值是指表示不透明度的一個值,取值范圍為0~255,其中0代表完全透明,255代表完全不透明。在設(shè)置透明度時,我們會用到一個涉及到透明度數(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,表示背景的透明度。
圖片透明度
對于Android應(yīng)用中的圖片,我們也可以設(shè)置它們的透明度,這可以通過在代碼中設(shè)置透明度來實現(xiàn),示例如下:
//獲取原圖 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.image); //根據(jù)原圖創(chuàng)建一個新圖,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屬性來實現(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,后面三個參數(shù)分別代表顏色的紅色、綠色和藍色值,這三個參數(shù)的取值范圍也是0~255。
背景透明度
對于應(yīng)用中的背景,我們也可以設(shè)置背景的透明度。這可以通過在布局文件中的根布局中添加透明度屬性來實現(xiàn),代碼示例如下:
//在根布局中添加透明度屬性 android:alpha="0.5"
在上面的代碼示例中,我們將根布局的透明度設(shè)置為0.5,這樣就可以實現(xiàn)背景的透明效果。
動態(tài)改變透明度
在Android開發(fā)中,我們經(jīng)常需要在一定條件下動態(tài)地改變視圖的透明度,這可以通過代碼來實現(xiàn),示例如下:
//獲得視圖的透明度值 float alpha = view.getAlpha(); //改變視圖的透明度值 view.setAlpha(alpha - 0.1f);
在上面的代碼示例中,我們通過調(diào)用getAlpha()方法獲取視圖的透明度值,并通過setAlpha()方法改變視圖的透明度值,從而實現(xiàn)動態(tài)改變透明度的效果。
總結(jié)
到此這篇關(guān)于Android設(shè)置改變透明度實例的文章就介紹到這了,更多相關(guān)Android設(shè)置透明度內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android開發(fā)中用Kotlin編寫LiveData組件教程
LiveData是Jetpack組件的一部分,更多的時候是搭配ViewModel來使用,相對于Observable,LiveData的最大優(yōu)勢是其具有生命感知的,換句話說,LiveData可以保證只有在組件( Activity、Fragment、Service)處于活動生命周期狀態(tài)的時候才會更新數(shù)據(jù)2022-12-12Android Handler實現(xiàn)閃屏頁倒計時代碼
這篇文章主要介紹了Android Handler實現(xiàn)閃屏頁倒計時代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08Android自定義控件之可拖動控制的圓環(huán)控制條實例代碼
這篇文章主要介紹了Android自定義控件之可拖動控制的圓環(huán)控制條實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-04-04Activity與Service之間交互并播放歌曲的實現(xiàn)代碼
以下是對Activity與Service之間交互并播放歌曲的實現(xiàn)代碼進行了詳細的分析介紹,需要的朋友可以過來參考下2013-07-07