天天看點

建立Material Design風格的Android應用--使用Drawable

以下Drawables的功能幫助你在應用中實作Material Design:

圖檔資源着色

在android 5.0(api 21)和更高版本,可以着色bitmap和.9 png 通過定義透明度遮蓋。你可以着色通過使用顔色資源或者主題的屬性去解析顔色資源(比如,

?android:attr/colorPrimary

).通常我們建立一次,然後資源自适應主題。

你可以給BitmapDrawable或NinePatchDrawable對象着色使用

setTint()

方法。你可以可以在布局檔案中使用

android:tint

android:tintMode

屬性設定着色顔色和着色模式。

從圖檔中抽取高亮顔色

support library r21和更高的版本中包括了

Palette

類,可以從一個圖檔中提取高亮顔色。這個類可以提起以下幾種突出顔色:

Vibrant 充滿生機

Vibrant dark 暗的充滿生機

Vibrant light 亮的充滿生機

Muted 柔和

Muted dark 暗的柔和

Muted light 亮的柔和

傳遞一個Bitmap對象給靜态方法Palette.generate(),它會在背景線程幫你從背景線程提取顔色。如果你不能使用這個背景線程,使用Palette.generateAsync()方法,并且設定一個監聽器listener.

你可以從圖檔中取得突出顔色使用Palette類中的getter方法,比如Palette.getVibrantColor.

在項目中使用Palette方法,需要在項目中包含v7包palette的jar, gradle dependecy添加的方式是:

?

1 2

...

compile

'com.android.support:palette-v7:21.0.+'

下面這個是示例代碼:

?

1 2 3 4 5 6

Palette.generateAsync(bitmap,

new

Palette.PaletteAsyncListener() {

public

void

onGenerated(Palette palette) {

// Do something with colors...

palette.getVibrantColor(Color.BLACK);

//get a color in rgb value

}

});

建立Material Design風格的Android應用--使用Drawable

更多資訊,請檢視Paltette的api文檔:http://developer.android.com/reference/android/support/v7/graphics/Palette.html

建立矢量drawables

在android 5.0和更高版本中,可以建立矢量的drawable,在縮放的時候不會失真。你隻需要定義一個矢量圖檔檔案,相反的,使用bitmap位圖則需要針對不同的分辨率建立多個檔案。建立一個矢量圖檔,你需要說明圖形的詳細,在xml檔案的 标簽下。

下面是一個例子:

?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

<?

xml

version

=

"1.0"

encoding

=

"utf-8"

?>

<!-- res/drawable/heart.xml -->

<

vector

xmlns:android

=

"http://schemas.android.com/apk/res/android"

android:width

=

"256dp"

android:height

=

"256dp"

android:viewportHeight

=

"32"

android:viewportWidth

=

"32"

>

<!-- draw a path -->

<

path

android:fillColor

=

"#f15467"

android:pathData="M20.5,9.5

c-1.955,0,-3.83,1.268,-4.5,3

c-0.67,-1.732,-2.547,-3,-4.5,-3

C8.957,9.5,7,11.432,7,14

c0,3.53,3.793,6.257,9,11.5

c5.207,-5.242,9,-7.97,9,-11.5

C25,11.432,23.043,9.5,20.5,9.5z"/>

</

vector

>

上面的圖顯示效果如下:

建立Material Design風格的Android應用--使用Drawable

矢量圖檔在android表現為

VectorDrawable

對象。更多資訊,檢視Svg Path reference。

參考資料:http://developer.android.com/training/material/drawables.html

原文位址:http://blog.isming.me/2014/11/03/creating-app-with-material-design-four-drawables/,轉載請注明出處。