手機螢幕太小,經常會用到半透明的效果以增加可視範圍,給大家分享以下半透明實現方式!
下面是自訂Activity半透明的效果例子:
res/values/styles.xml
<resources> <style name="Transparent "> <item name="android:windowBackground">@color/transparent_background</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@+android:style/Animation.Translucent</item> </style> </resources>
res/values/color.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="transparent_background">#50000000</color> </resources>
注意:color.xml的#5000000前兩位是透明的效果參數從00 到 ff(透明--不麼透明),後6位是顏色的設定
manifest.xml
<activity android:name=".TransparentActivity"android:theme="@style/Transparent" />
java代碼
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.Transparent); setContentView(R.layout.transparent); }
下面是利用系統主題實現Activity半透明的效果例子:
Android為透明效果提供了內建的主題:Theme(android:style/Theme.Translucent),如果想實現透明效果,只要為Activity設定該Theme便可。
如果想實現半透明效果,則只需要繼承android:style/Theme.Translucent,並重寫便可。
繼承android:style/Theme.Translucent並重寫:
<?xml version=”1.0″ encoding=”utf-8″?><resources><style name=”Theme.Translucent” parent=”android:style/Theme.Translucent”><item name=”android:windowBackground”>@color/translucent_background</item><item name=”android:colorForeground”>#fff</item></style></resources>
AndroidMainfest.xml中使用該主題:
<activity android:name=”.Translucent” android:label=”@string/app_name”android:theme=”@style/Theme.Translucent”><intent-filter><action android:name=”android.intent.action.MAIN” /><category android:name=”android.intent.category.LAUNCHER” /></intent-filter></activity>
下面是實現View半透明的效果例子:
Button或者ImageButton的背景設為透明或者半透明
半透明:<Button android:background="#e0000000" ... />
透明: <Button android:background="#00000000" ... />
顏色和不透明度 (alpha) 值以十六進位標記法表示。任何一種顏色的值範圍都是 0 到 255(00 到 ff)。對於 alpha,00 表示完全透明,ff 表示完全不透明。運算式順序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。例如,如果您希望對某疊加層應用不透明度為 50% 的藍色,則應指定以下值:7fff0000
設定背景圖片透明度(超簡單)
Java代碼
View v = findViewById(R.id.content);//找到你要設透明背景的layout 的id
v.getBackground().setAlpha(100);//0~255透明度值