android設置背景透明
1. Android設置Activity背景為透明style的方法
1.設置Theme.Translucent
只需要在Manifest中需要透明的Activity內設置theme為以上任意一個就可以了
2.在Activity的layout.xml文件中,設置父布局背景透明度(不設置背景色默認全透明),不設置透明度看不出效果,如果子控制項設置了背景色且不透明,則子控制項所佔位置無透明效果。
3.效果圖
1.使用自定義的Theme
2.在res-values-styles.xml中添加MyTransparent
3.在res-values-colors.xml中添加透明顏色值
4.以上步驟設置完成和方法一有同樣的效果,省去了在layout.xml設置透明背景色(如果在布局中頁設置了背景色,將以布局中的為准)。方法二相對靈活一點,可以多設置一些屬性,如模糊背景:
2. android 如何把一個 RelativeLayout或ImageView背景設為透明
設置背景為透明
1、設置背景為透明
<ImageView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"/><!--#00000000-->也可以設置顏色值,前兩位為透明度
2、設置背景透明度
<ImageView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="0"/>
相應的也可以在java代碼中設置透明
3. android怎麼把activity的最底層view的背景設為透明
android設置背景色為透明
方法一:
只要在配置文件內activity屬性配置內加上
android:theme="@android:style/Theme.Translucent"
就好了。
這樣就調用了android的透明樣式!
方法二:
先在res/values下建colors.xml文件,寫入:
<?xmlversion="1.0"encoding="UTF-8"?>
<resources>
<colorname="transparent">#9000</color>
</resources>
這個值設定了整個界面的透明度,為了看得見效果,現在設為透明度為56%(9/16)左右。
再在res/values/下建styles.xml,設置程序的風格
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stylename="Transparent">
<itemname="android:windowBackground">@color/transparent</item>
<itemname="android:windowIsTranslucent">true</item>
<itemname="android:windowAnimationStyle">@+android:style/Animation.Translucent</item>
</style>
</resources>
最後一步,把這個styles.xml用在相應的Activity上。即在AndroidManifest.xml中的任意<activity>標簽中添加
android:theme="@style/transparent"
如果想設置所有的activity都使用這個風格,可以把這句標簽語句添加在<application>中。
4. android導航欄與狀態欄顏色及透明度
首先創建一個空項目,如下圖
可以看到狀態欄是白字黑背景, 導航欄也是白圖標黑背景
嘿嘿, 我們先把狀態欄隱藏掉,在添加一個ImageView, 讓ImageView做背景(方便查看)
樣子如下:
將狀態欄和導航欄設置透明, 找到 Manifest.xml 文件, 在主題樣式中修改
android:statusBarColor 設置狀態欄背景色
android:navigationBarColor 同上
android:windowLightStatusBar 設置狀態欄文字色, true為深色, false為白色
android:windowLightNavigationBar 同上
android:windowTranslucentStatus 設置狀態欄半透明狀態, true為半透明, false為不透明
android:windowTranslucentNavigation 同上
最後兩個半透明狀態下面沒用, 可自己嘗試看效果
效果圖如下:
可以看到導航欄與狀態欄並沒有透明,原因是默認不能佔用狀態欄空間與導航欄空間,根布局背景為白色,所有這里顯示白色
可以通過設置 getWindow().getDecorView().setSystemUiVisibility() 來適配
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 適配狀態欄空間
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 適配導航欄空間
效果如下:
5. android 如何讓一個dialog的背景為透明
北京設置透明?你可以設置dialog的樣式,通過Style 來設置;
Android Dialog背景全透明無邊框 Theme Style
<style name="Translucent_NoTitle" parent="android:style/Theme.Dialog">
<item name="android:windowNoTitle">true</item>
<item name="android:background">#00000000</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
</style>
6. android Button 怎麼把背景設置透明
Android控制項設置邊框,或者背景可以使用XML來配置,背景透明只需要設置solid 的值為 #00000000即可,前面兩位是透明度,後面6位是RGB顏色值,具體示例代碼如下:
1.在drawable新建一個 buttonstyle.xml的文件,內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 連框顏色值 --><item>
<shape>
<solid android:color="#ff0000" />
</shape>
</item>
<!-- 主體背景顏色值 -->
<item android:bottom="3dp" android:right="3dp">
<shape>
<solid android:color="#ffffff" />
<padding android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
</shape>
</item>
</layer-list>
2.然後在布局文件裡面引入這個xml,示例代碼如下:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:background="@drawable/buttonstyle" />
7. android編程如何把現有的背景圖片設置成透明的
方法一:
只要在配置文件內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)左右。
8. Android 開發 怎樣使當前界面的背景透明
使Activity的主題(Theme)為 @android:style/Theme.Translucent (透明主題),之後把背景色也設置為透明即可。
9. Android 狀態欄透明
前言:最近項目大量用到狀態欄透明,網上也出現很多庫可以直接拿來用,個人認為沒有必要那麼重引用到一個庫(有木有同學和我有一樣的想法),所以研究了一番,在此做個記錄加強記憶也便後期查閱,如果無意中有幸能幫助到你那就再好不過了。
Android 從 4.4 (SDK 19) 開始支持 系統欄(狀態欄+導航欄)半透明 效果:
翻譯一下就是:
TranslucentDecor 主題設置了兩個屬性 windowTranslucentStatus 和 windowTranslucentNavigation 都為 true,前者指定狀態欄半透明、後者指定導航欄半透明。
本文只探討「狀態欄」 。
默認樣式是這樣:
可見 Toolbar 和系統狀態欄之間有明顯的分界,我們要實現的效果是 Toolbar 和狀態欄背景統一,看起來像是一個整體(自行腦補圖片)。
按照官方文檔,我們自定義主題:
對應的 Activity 引用該主題:
我看來看看效果:
雖然實現了半透明,但是布局被狀態欄覆蓋,接下來在布局文件中設置 fitSystemWindows (注意加到根節點 ConstraintLayout 上):
來看看效果:
雖然布局沒有被狀態欄覆蓋,但是狀態欄背景顯然這不是我們想要的效果😭
為什麼狀態欄會這么奇怪?
文章開頭的定義中我們說了,布局文件會延伸到狀態欄所佔區域下, fitsSystemWindows 的作用是給對應的 View 增加 padding(這里以 ConstraintLayout 為例),目的是為了讓其內容不被狀態欄遮擋。
在我們的布局文件中 ConstraintLayout 沒有設置背景(默認白色),所以狀態欄默認的半透明背景色和 ConstraintLayout 的白色背景疊加,就變成了上圖中的效果。
【總結】兩個基本概念:
1、 windowTranslucentStatus 設置為true之後,狀態欄默認是 半透明 的(4.4 是黑色到透明色漸變,5.0+ 是純黑色半透明),和我們要求的 透明 相去甚遠。更重要的是,布局會延伸到狀態欄底下。
2、 android:fitsSystemWindows 簡單理解 就是 View 為了適配系統狀態欄和導航欄(不被遮擋)自動 增加 padding ,當然真正的實現原理比這復雜很多而且不同的 View 可以自定義實現方式。
所以,為了實現文章開頭提出來的「狀態欄透明」效果,我們需要處理:
設置 windowTranslucentStatus 為 true,讓狀態欄半透明。
在根節點設置 android:fitsSystemWindows 使其不被狀態欄遮擋。
Android 4.4 暫時沒有辦法去掉狀態欄的漸變。
Android 5.0+ 開始支持修改狀態欄顏色,設置透明色即可把半透明去掉。
看看效果:
我們看到即使狀態欄透明了,但是其底色是一片白,因為跟節點 ConstraintLayout 沒有設置背景,大多情況下我們不會給整個跟節點設置顏色,可以考慮把 android:fitsSystemWindows 設置到子 View 上,本例中是 AppBarLayout (5.0+ 無效,只能顯式給 AppBarLayout 加 padding,可以利用其背景色),實際項目中可靈活調整。
最終效果:
至此,完成狀態欄透明效果,網上有很多庫,實際上都是基於此原理,在此基礎上再自定義 View 做為狀態欄背景。
https://developer.android.com/about/versions/android-4.4.html
10. 請教android怎麼讓控制項背景透明
以Android Studio為例,步驟如下:
1、直接打開相關窗口,在Android-app-res-layout的空白處點擊滑鼠右鍵並選擇New-Layoutresource file。