當前位置:首頁 » 安卓系統 » android設置透明

android設置透明

發布時間: 2023-01-19 01:18:16

⑴ 如何實現Android透明導航欄

實現功能

1.步驟:

1) 創建一個工程,主布局就先做一個ImageView,自己找個好看的圖片做src。
2) 在Activity重寫的onCreate方法中獲得窗口視圖對象(DecorView)
3) 設置DecorView的SystemUiVisibility
4) 設置導航條、狀態欄的顏色–>透明
5) 獲取當前Activity的ActionBar並隱藏

2.具體代碼和注釋:

獲取DecorView對象

java">@Override
protectedvoidonCreate(BundlesavedInstanceState){
...
ViewdecorView=getWindow().getDecorView();
...
}

設置SystemUiVisibility

intoption=View.SYSTEM_UI_FLAG_FULLSCREEN//全屏標記
|View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN//布局全屏標記,避免退出全屏模式時內容被覆蓋
|View.SYSTEM_UI_FLAG_HIDE_NAVIGATION//隱藏導航欄標記
|View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION//布局隱藏導航欄標記,同理
|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY//粘性沉浸體驗
|View.SYSTEM_UI_FLAG_LAYOUT_STABLE;//確保上述標記穩定//此方法用來設置系統UI的可見性,系統UI包括狀態欄、ActionBar、導航欄devorView.setSystemUiVisibility(option);

設置狀態欄、導航欄的顏色:

getWindow().setStatusBarColor(Color.TRANSPARENT);//Color.TRANSPARENT=0表示#00000000即透明顏色
getWindow().setNavigationBarColor(Color.TRANSPARENT);

獲取本頁面的ActionBar並隱藏起來

ActionBaractionBar=getSupportActionBar();//注意:此處用的Activity繼承的是
AppCompatActivity(它繼承的是FragmentActivity)
//所以調用的是getSupport...方法,如果繼承Activity則直接調用get...方法
assertactionBar!=null;//這一句可以不理會,反正我是Ctrl+F1提示出來的,意思其實是判斷如果actionBar不為空則向下執行。
actionBar.hide();

注意:最後一點注意事項是:只支持Android API 21以上的手機

⑵ 怎樣將android控制項背景設置成透明

1、打開安卓的配置文件。

2、只需要在配置文件中把需要設置為透明的activity的樣式設置為android:theme="@android:style/Theme.Translucent"

3、這樣就可以把背景設置為透明。

⑶ 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)左右。

⑷ Android 透明度設置詳解

格式:

android:background="#XXxxxxxx"(顏色可以寫在color中)

說明:半透明顏色值不同於平時使用的顏色,半透明顏色值共8位,前2位是透明度,後6位是顏色。也就是說透明度和顏色結合就可以寫出各種顏色的透明度。下面是透明度說明表,供大家參考。

部分透明度示例:

setAlpha()的括弧中可以填0–255之間的數字。數字越大,越不透明。

注意點:
在5.0以上系統時,有些機型會出現莫名其妙的顏色值不起作用,變成透明了,也就是用此方法會導致其他共用一個資源的布局(例如:@color/white)透明度也跟著改變。比如text用上述方法設置成透明後,項目中,其他用到text顏色值的控制項,都變成透明了。

原因:在布局中多個控制項同時使用一個資源的時候,這些控制項會共用一個狀態,例如ColorState,如果你改變了一個控制項的狀態,其他的控制項都會接收到相同的通知。這時我們可以使用mutate()方法使該控制項狀態不定,這樣不定狀態的控制項就不會共享自己的狀態了。

android:alpha的值為0~1之間的數。數字越大,越不透明。1表示完全不透明,0表示完全透明。

說道Activity透明,發現網上的基本上都已經過時,在有v7以上的控制項都無法實現,均會報錯

所以如若你的布局xml文件有 support-V7 上的控制項的話,<style name="translucent">里的name要前要添加 AppTheme,如:

⑸ 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 適配導航欄空間
效果如下:

⑹ 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" />

⑺ 如何讓android 的activity變成完全透明的

  1. resources 添加一個style標簽 parent 繼承 android:Theme.Light.NoTitleBar

  2. item android:windowBackground 屬性可以設置一個透明顏色

  3. 然後在需要透明的Activity onCreate 中或者項目清單文件中設置這個自定義皮膚即可

示例代碼:

<stylename="customeTheme"parent="android:Theme.Light.NoTitleBar">
<!--設置window背景顏色或圖片也就是Activity的窗口背景-->
<itemname="android:windowBackground">@color/window_bg_color</item>
<!--狀態欄視圖背景透明4.4系統支持-->
<itemname="android:windowTranslucentStatus">true</item>
<!--屏幕下面的虛擬操作按鈕不透明-->
<itemname="android:windowTranslucentNavigation">false</item>
<!--軟鍵盤顯示時,視圖自動上移-->
<itemname="android:windowSoftInputMode">stateAlwaysHidden|adjustResize</item>
</style>

⑻ 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設置透明背景色(如果在布局中頁設置了背景色,將以布局中的為准)。方法二相對靈活一點,可以多設置一些屬性,如模糊背景:

⑼ 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

熱點內容
androidurl判斷 發布:2025-05-20 13:50:11 瀏覽:257
共享文件夾沒有啟動伺服器服務 發布:2025-05-20 13:43:38 瀏覽:803
天龍八部游戲怎麼切換伺服器 發布:2025-05-20 13:42:36 瀏覽:630
亞馬遜免費主機是什麼配置 發布:2025-05-20 13:40:10 瀏覽:695
存儲類型默認分配 發布:2025-05-20 13:32:26 瀏覽:662
qq信息加密 發布:2025-05-20 13:31:32 瀏覽:341
文件夾嗅探器foldersniffer 發布:2025-05-20 12:33:36 瀏覽:912
編譯裝入 發布:2025-05-20 12:32:48 瀏覽:562
萬勝壓縮機價格 發布:2025-05-20 12:20:00 瀏覽:987
判斷雲伺服器是否誠實的存放數據 發布:2025-05-20 12:11:07 瀏覽:377