android设置背景色为透明

本文介绍两种实现Android应用界面透明的方法。第一种是在配置文件中指定Theme.Translucent样式;第二种是通过自定义颜色与样式文件来调整窗口背景及透明度。

方法一:

只要在配置文件内activity属性配置内加上

android:theme="@android:style/Theme.Translucent"

就好了。

这样就调用了android的透明样式!

方法二:

先在res/values下建colors.xml文件,写入:

      
  <?xmlversionxmlversion="1.0"encoding="UTF-8"?> 
    
   <resources> 
    
   <colornamecolorname="transparent">#9000</color> 
    
   </resources>  


这个值设定了整个界面的透明度,为了看得见效果,现在设为透明度为56%(9/16)左右。

再在res/values/下建styles.xml,设置程序的风格

<?xmlversionxmlversion="1.0"encoding="utf-8"?> 
    
   <resources> 
    
   <stylenamestylename="Transparent"> 
    
   <itemnameitemname="android:windowBackground">@color/transparent</item> 
    
   <itemnameitemname="android:windowIsTranslucent">true</item> 
    
   <itemnameitemname="android:windowAnimationStyle">@+android:style/Animation.Translucent</item> 
    
   </style> 
    
   </resources> 


最后一步,把这个styles.xml用在相应的Activity上。即在AndroidManifest.xml中的任意<activity>标签中添加

android:theme="@style/transparent"


如果想设置所有的activity都使用这个风格,可以把这句标签语句添加在<application>中。

最后运行程序,哈哈,是不是发现整个界面都被蒙上一层半透明了。最后可以把背景色#9000换成#0000,运行程序后,就全透明了,看得见背景下的所有东西可以却都操作无效。


该内容转自:http://blog.youkuaiyun.com/hjj0212/article/details/7065050

### 设置 Android 手势导航条区域背景色透明Android 中,若需将手势导航条(即系统导航栏)的背景色设置透明,可以通过修改应用的主题或直接操作 `Window` 对象来实现。此方法适用于希望实现沉浸式界面或全面屏体验的应用场景。 #### 1. 在主题中定义透明背景 通过在 `styles.xml` 文件中自定义主题,并设置导航栏颜色为透明,可使整个应用或特定页面的手势导航条区域背景变为透明: ```xml <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowDrawsSystemBarBackgrounds">true</item> <item name="android:systemUiMode">edgeToEdge</item> <item name="android:navigationBarColor">@android:color/transparent</item> </style> ``` 上述代码片段中,`navigationBarColor` 被设置透明色,以确保手势导航条区域背景透明。同时,启用 `windowDrawsSystemBarBackgrounds` 和 `systemUiMode` 以支持边缘到边缘的显示模式[^1]。 #### 2. 在 Activity 中动态设置 如果需要在运行时动态更改导航栏背景色,可在 `Activity` 的 `onCreate` 方法中调用以下代码: ```kotlin override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 启用边缘到边缘显示 WindowCompat.setDecorFitsSystemWindows(window, false) window.statusBarColor = Color.TRANSPARENT window.navigationBarColor = Color.TRANSPARENT setContent { // Composable 内容 } } ``` 上述代码中,`setDecorFitsSystemWindows` 设置为 `false` 以允许内容延伸至系统 UI 区域。随后,将状态栏和导航栏的颜色均设置透明,从而实现全透明手势导航条的效果。 #### 3. 使用 Jetpack Compose 实现透明导航栏 对于使用 Jetpack Compose 构建 UI 的应用,除了在 `Activity` 层面设置透明导航栏外,还可以结合 `Modifier.systemBarsPadding()` 来调整特定组件的位置,以避免被系统 UI 遮挡: ```kotlin setContent { Box( modifier = Modifier .fillMaxSize() .systemBarsPadding() ) { // 主要内容 } } ``` 该方式确保主要内容不会因系统 UI 的存在而被遮挡,同时保持了手势导航条区域的透明性。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值