Android总设置透明度

本文介绍在Android中实现透明效果的多种方法,包括使用系统透明色、ARGB控制及调整Alpha值等。此外还介绍了如何设置窗体透明度、背景模糊等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设置透明效果 大概有三种

1、用android系统的透明效果
Java代码 
android:background="@android:color/transparent" 

例如 设置按钮
Java代码 
<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" />  

2、用ARGB来控制
Java代码 
半透明<Button android:background="#e0000000" /> 
透明<Button android:background="#00000000" /> 
 
3、设置alpha
Java代码 
View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id 
v.getBackground().setAlpha(100);//0~255透明度值 
 
 
 
 
 
 
android 窗体透明的,黑暗度等的设置技巧
设置透明度(这是窗体本身的透明度,非背景)
1.WindowManager.LayoutParams 
lp=getWindow().getAttributes();
 2.lp.alpha=0.3f;
3
getWindow().setAttributes(lp);

设置黑暗度
1
WindowManager.LayoutParams lp=getWindow().getAttributes();
2
lp.dimAmount=0.5f;
3
getWindow().setAttributes(lp);
4
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dimAmount在0.0f和1.0f之间,0.0f完全不暗,1.0f全暗

设置背景模糊
1
getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,
2
WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
以上设置对dialog对话框同样有效
 
 
Activity的透明、半透明效果的设置transparent
res/values/styles.xml
1
2
3
4
5
6
7
8
9
10
11
12
<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
1
2
3
4
5
6
7
<?xml version="1.0" encoding="utf-8"?>  
<resources>  
  <color name="transparent_background">#50000000</color>  
</resources>  
//注意:
//color.xml的#5000000前两位是透明的效果参数从00--99(透明--不怎么透明),
//后6位是颜色的设置
manifest.xml
1
2
3
4
<activity
android:name=".TransparentActivity"
android:theme="@style/Transparent">  
</activity>
java代码
1
2
3
4
5
public void onCreate(Bundle savedInstanceState){  
        super.onCreate(savedInstanceState);  
        setTheme(R.style.Transparent);  
        setContentView(R.layout.transparent);  
}
配置结束。
### Android设置视图透明度的实现方法 在 Android 开发中,可以通过多种方式设置视图的透明度。以下是几种常见的实现方法: #### 方法一:通过 XML 属性设置静态透明度 可以在布局文件中直接为视图组件设置 `android:alpha` 属性来指定其初始透明度透明度值范围是从 0.0(完全透明)到 1.0(完全不透明)。例如: ```xml <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击我" android:alpha="0.5" /> <!-- 设置透明度为半透明 --> ``` 此方法适用于需要固定透明度的情况[^1]。 #### 方法二:通过 Java/Kotlin 动态调整透明度 如果需要在运行时动态改变视图的透明度,可以使用 `setAlpha(float alpha)` 方法。以下是一个简单的例子: ```java import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { float currentAlpha = myButton.getAlpha(); if (currentAlpha == 1.0f) { myButton.setAlpha(0.5f); // 将透明度改为半透明 } else { myButton.setAlpha(1.0f); // 恢复为完全不透明 } } }); } } ``` 这段代码展示了如何根据当前状态切换按钮的透明度[^1]。 #### 方法三:创建透明度动画 为了实现更平滑的效果,可以利用 `ObjectAnimator` 类制作透明度变化动画。下面是一段完整的示例代码: ```java import android.animation.ObjectAnimator; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myButton = findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ObjectAnimator animator = ObjectAnimator.ofFloat(myButton, "alpha", 1.0f, 0.0f); animator.setDuration(1000); // 设置动画持续时间 animator.start(); // 启动动画 } }); } } ``` 这里演示了从完全不透明逐渐变为完全透明的过程[^1]。 #### 方法四:结合 RecyclerView 实现滚动渐变透明效果 对于复杂的场景,比如 Toolbar 和 RecyclerView 的组合,可能希望随着用户的滚动操作而自动调节某些 UI 元素的透明度。这种情况下通常会监听 ScrollView 或 NestedScrollView 的滚动事件,并基于滚动距离计算新的 Alpha 值。具体逻辑可以根据实际需求定制[^2]。 --- ### 结 以上介绍了四种不同的技术手段用于控制 Android 应用中的视图透明属性。开发者应依据项目的具体情况选择最合适的方案实施开发工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值