Android进阶之设置透明、半透明等效果

设置透明效果有三种,1、2种常用

1、设置alpha

//找到你要设透明背景的layout 的id 
View v = findViewById(R.id.content);
//0~255透明度值
v.getBackground().setAlpha(100);

或者

/** * 设置添加屏幕的背景透明度 * * @param bgAlpha */
    public void backgroundAlpha(float bgAlpha) {
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        // 0.0-1.0
        lp.alpha = bgAlpha;
        getWindow().setAttributes(lp);
    }

2、用ARGB来控制

// 半透明
<Button android:background="#e0000000" /> 
// 透明
<Button android:background="#00000000" />

3、用android系统的透明效果

android:background="@android:color/transparent" 

xml

<Button 
  android:background="@android:color/transparent"  
  android:text="@+id/Button01"  
  android:id="@+id/Button01"  
  android:layout_width="wrap_content"  
  android:layout_height="wrap_content"  
  android:textColor="#ffffff" />  

java

public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setTheme(R.style.Transparent);   
        setContentView(R.layout.transparent);  
}

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--99(透明--不怎么透明),
//后6位是颜色的设置

manifest.xml

<activity android:name=".TransparentActivity" android:theme="@style/Transparent">  
</activity>

补充:

设置窗体黑暗度
dimAmount在0.0f和1.0f之间,0.0f完全不暗,1.0f全暗

WindowManager.LayoutParams lp=getWindow().getAttributes();
2
lp.dimAmount=0.5f;
3
getWindow().setAttributes(lp);
4
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);

设置背景模糊

getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
2
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

你可能感兴趣的:(Android进阶之设置透明、半透明等效果)