日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android样式和主题(二):系统有哪些主题

發布時間:2025/3/21 Android 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android样式和主题(二):系统有哪些主题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android系統自帶Theme

簡介

  • Android系統在4.0之前沒有設計可言,打開APP就是黑乎乎一片,這是最原始的Theme主題
  • 在Android4.0有了Holo主題,Holo本身繼承于Theme主題,而Holo.NoActionBar ,Holo.Dialog,Holo.Light這些都是衍生自Holo主題
  • 在Android5.0有了Material主題,俗稱材料主題,也是繼承于Theme主題

Theme源碼簡析

以Android6.0為例,查看系統源碼這個位置 ?:frameworks/base/core/res/res/value/,發現有如下幾個Theme文件。

截取部分theme.xml:

<style name="Theme"><item name="isLightTheme">false</item><item name="colorForeground">@color/bright_foreground_dark</item><item name="colorForegroundInverse">@color/bright_foreground_dark_inverse</item><item name="colorBackground">@color/background_dark</item><item name="colorBackgroundFloating">?attr/colorBackground</item><item name="colorBackgroundCacheHint">?attr/colorBackground</item> 復制代碼

截取部分theme_metarial.xml

<style name="Theme.Material"><item name="colorForeground">@color/foreground_material_dark</item><item name="colorForegroundInverse">@color/foreground_material_light</item><item name="colorBackground">@color/background_material_dark</item><item name="colorBackgroundFloating">@color/background_floating_material_dark</item><item name="colorBackgroundCacheHint">@color/background_cache_hint_selector_material_dark</item><item name="disabledAlpha">@dimen/disabled_alpha_material_dark</item><item name="backgroundDimAmount">0.6</item> 復制代碼
  • themes.xml:低版本的主題,目標API level一般為10或以下
  • themes_holo.xml:從API level 11添加的主題
  • themes_device_defaults.xml:從API level 14添加的主題
  • themes_material.xml:從API level 21添加的主題
  • themes_micro.xml:用于Android Wear的主題
  • themes_leanback.xml:用于Android TV的主題

常見Theme效果比較

下面直觀感受下各種Theme的區別

  • 測試設備:一加3T ?系統版本:7.0

  • 測試APP:一個Activity放一個Button,點擊出現AlertDialog

  • android:Theme

-?android:Theme.Holo.Light

-?android:Theme.DeviceDefault.Light

-?android:Theme.Material.Light

如果把主題設為Theme.Material,然后minsdkVersion改為19,安裝到Android4.4的設備會是什么效果

  • 測試設備:Htc one ?系統版本:android 4.4

可以看出Material在Android4.4系統上無法使用,而是自動替換成為Holo主題,那么怎么在Android5.0之前的設備使用Material主題呢?

兼容包AppCompat

appcompat-v7是v7-support庫下面一個子庫,此庫主要是對ActiinBar支持,還包含對 Material Design 用戶界面實現的支持。

  • 在build.gradle添加compile 'com.android.support:appcompat-v7:23.2.1'
  • 修改主題為Theme.AppCompat.Light
  • 修改Activity為AppCompatActivty
  • 測試設備: htc one 系統版本:4.4

  • 可以看出在4.4的設備使用appcompat-v7這個兼容包,也實現了類似Material的主題風格,但是仔細對比下這個Dialog明顯還是Holo風格的。就是說appcompat-v7只是在對Activity主界面風格進行了Material化,而一些控件并沒有變化。
  • 要想使我們的app(不管運行在5.0之前還是5.0以后)擁有Material的精髓,包括所有Material控件,動畫,還得使用另一個兼容包Android Design Support Library 使用方法:在build.gradle配置?compile 'com.android.support:design:23.2.0' ,這個庫依賴于Support v4 和AppCompat Support,添加了這個庫就默認實現了這兩個庫。

下一篇:介紹Material中控件,動畫的使用

總結

以上是生活随笔為你收集整理的Android样式和主题(二):系统有哪些主题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。