android透明顏色
⑴ 如何設置Android中控制項的顏色透明度
設置Android中控制項的顏色透明度,可自由設置在layout里也可以在activity里
eclipse
1
#ff000000 此為16進制顏色代碼,
前2位ff為透明度,後6位為顏色值(000000為黑色,ffffff為白色,可以用ps等軟體獲取)。
2
透明度分為256階(0-255),計算機上用16進製表示為(00-ff)。透明就是0階,不透明就是255階,如果50%透明就是127階(256的一半當然是128,但因為是從0開始,所以實際上是127)。
3
10進制的255換算成16進制是ff,127換算成16進制是7f,#7f000000 代表50%透明度的黑色。 (寫成#50000000當然是不行的)進制轉換可使用win7自帶計算器(轉為科學型)。例:25%透明度的一種紅色「#3ff70000
⑵ 怎樣將android控制項背景設置成透明
1、打開安卓的配置文件。
2、只需要在配置文件中把需要設置為透明的activity的樣式設置為android:theme="@android:style/Theme.Translucent"
3、這樣就可以把背景設置為透明。
⑶ 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怎麼讓控制項背景透明
以Android Studio為例,步驟如下:
1、直接打開相關窗口,在Android-app-res-layout的空白處點擊滑鼠右鍵並選擇New-Layoutresource file。
⑸ 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 透明為什麼是白色
這是一個顏色值:#99000000 (16進制數) ,前面2個數字表示的就是透明度(0~255),通過計算 顏色中前面2個數字(99),需換成10進制,99(16進制)的10進制數為 153,接著。153/255 = 0.6.。,也就是透明度為60%的黑色。
⑺ 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
⑻ android怎麼將彈出窗口透明
1. 在res/values 下建立color.xml
<resources>
<color name="transparent_background">#80ffffff</color>
</resources>
PS: #80是透明度的值(即80%透明),ffffff是顏色值(為黑色)
2. 在res/values下建立style.xml
<resources> <style name="Transparent" parent="android:style/Theme.Dialog"> <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>
PS: parent="android:style/Theme.Dialog" 是將activity設置為彈出式窗口
3. 在AndroidManifest.xml中找到要彈出的activity,加入theme:
<activity android:name="ActivityName" android:theme="@style/Transparent" />完成上面設置後,你的activity就已經是透明的了,但是該Activity中的控制項還沒有透明,如果還需要控制項透明,則需要在該activity的代碼中加入如下代碼:
//設置activity中的控制項透明 Window window = getWindow(); WindowManager.LayoutParams wl = window.getAttributes(); wl.flags = WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; wl.alpha=0.95f;//設置透明度,0.0為完全透明,1.0為完全不透明 window.setAttributes(wl);
⑼ android studio activity怎麼設置透明背景
Android studio在Manifest.xml中找到對應的activity在裡面加上android:theme="@android:style/Theme.Translucent"即可背景透明,如果還想取消標題欄和全屏的畫可以將style/改為Theme.Translucent.NoTitleBar.Fullscreen