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