国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Material Design實現(xiàn)應用動態(tài)改變色調(diào)的方法

2019-11-09 15:37:17
字體:
供稿:網(wǎng)友

作者 Yongquan.Xu

1、概述

本文針對目前FreelyUI 應用的主題色定制,利用Material design的主題顏色和tint著色特性,實現(xiàn)快速定制app主題顏色。

2、Material design的主題顏色控制

如下圖所示,Material Design定義了一系列的顏色用以控制應用的各種色調(diào),本文使用主題顏色用于定義應用的各種色調(diào)。

ColorPRimary,定義應用的主色調(diào)

colorPrimaryDark,定義按鈕點擊后的顏色(由于狀態(tài)使用半透著色實現(xiàn)漸變效果,該屬性在原先主題中已失效)

colorBackground,定義標題欄漸變色的結(jié)束顏色

3、tint特性

tint是Material Design中的新特性,可以理解為著色,把一張圖片渲染成另外一種顏色。在Android L中,EditText的下劃線背景和光標顏色變化,就是使用這種特性。

 

4、定義主題theme

<stylename="APPTheme"parent="android:Theme.Material.Light">  <item name="android:windowActionBar">false</item>  <item name="android:windowNoTitle">true</item>  <item name="android:colorPrimary">#FF0000</item>  <item name="android:colorPrimaryDark">#FF99CC</item>  <item name="android:colorBackground">@android:color/white</item>  <item name="android:colorAccent">?android:attr/colorPrimary</item>  <item name="android:alertDialogTheme">@style/AppDialog</item></style><style name="AppTheme.Yellow">  <item name="android:colorPrimary">#FFFF00</item>  <item name="android:colorPrimaryDark">#0000FF</item>  <item name="android:alertDialogTheme">@style/AppDialog.Yellow</item></style><style name="AppTheme.Blue">  <item name="android:colorPrimary">#0000FF</item>  <item name="android:alertDialogTheme">@style/AppDialog.Blue</item></style>

如以上代碼中的高亮部分,在theme中定義需要用到的顏色表

 

5、Tint設置

5.1靜態(tài)圖片

對于ImageView,可以設置 tint和BackgroundTint分別控制前景和背景的著色

<ImageView  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:background="@drawable/music_button_round_song"  android:src="@drawable/music_loading_icon"  android:scaleType="centerInside"  android:layout_marginTop="100dip"  android:layout_centerHorizontal="true"  android:tint="?android:attr/colorPrimary"/>

 

5.2selector

在selector中嵌入著色功能設置Drawable的屬性,主要用到的屬性有tint和alpha,支持的類型可以是bitmap和nine-patch

<ImageView  android:layout_marginStart="50dip"  android:id="@+id/btn_selector_indicate"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_alignTop="@id/btn_selector"  android:layout_toEndOf="@id/btn_selector"  android:src="@drawable/bg_selector"/>

 

 

<selector xmlns:android="http://schemas.android.com/apk/res/android">  <item android:state_enabled="false">    <bitmap android:alpha="?android:attr/disabledAlpha"                android:src="@drawable/music_icon_suspended"                android:tint="?android:attr/colorControlActivated"/>  </item>  <item android:state_pressed="true">    <bitmap android:src="@drawable/music_icon_suspended"                android:tint="?android:attr/colorPrimaryDark"/>  </item>  <item>    <bitmap android:src="@drawable/music_icon_suspended"            android:tint="?android:attr/colorPrimary"/>  </item></selector>

 

5.3 layer-list + ripple

在著色的同時實現(xiàn)水波功能

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  <item>    <bitmap android:src="@drawable/playing_next"      android:tint="?android:attr/colorPrimary"/>  </item>  <item>    <ripple android:color="#80D0D0D0">    </ripple>  </item></layer-list>

 

運行結(jié)果

7、總結(jié)

通過本文的方法,實現(xiàn)了使用Material Design主題設置應用色調(diào)的功能,降低代碼和美工的工作量,提高效率。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 白朗县| 平昌县| 县级市| 沁源县| 无锡市| 凤庆县| 元江| 壶关县| 乌拉特中旗| 阜阳市| 唐河县| 常山县| 东安县| 新源县| 京山县| 芦山县| 东港市| 温宿县| 伊春市| 门源| 敦煌市| 晴隆县| 铜鼓县| 巴南区| 兰州市| 天气| 如东县| 新巴尔虎右旗| 泰和县| 宽甸| 兴义市| 根河市| 贡嘎县| 开远市| 沙洋县| 密云县| 洛宁县| 青川县| 宜川县| 光山县| 光山县|