BitmapDrawable:
這幾乎是最簡單的Drawable了,他表示的就是一張圖片。在實際開發中,我們可以直接引用原始的圖片即可,但是也可以通過xml的方式來描述他,通過cml來描述的BitmapDrawable可以設置更多的效果:
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable/drawable_resource"
android:antialias=["true"|"false"]
android:dither=["true"|"false"]
android:filter=["true"|"false"]
android:gravity=["top"|"bottom"|"left"|"right"|"center_vertical"|"fill_vertical"|"center_horizontal"|"fill_horizontal"|"center"|"fill"|"clip_vertical"|"clip_horizontal"]
android:mipMap=["true"|"false"]
android:titleMode=["disable"|"clamp"|"repeat"|"mirror"]
下面是它的各個屬性的含義:
android:src
這個很簡單,就是圖片的資源id
android:antialias
是否開啓圖片的抗鋸齒功能。開啓後會讓圖片變得平滑,同時會在一定程度上降低圖片的清晰度,但是這個降低的幅度較低以至於可以忽略,因此抗鋸齒選項應該開啓。
android:dither
是否開啓抖動效果。當圖片的像素配置和手機屏幕配置不一致時開啓這個選項可以讓高質量的圖片在低質量的屏幕上還能保持良好的顯示效果
android:filter
是否開啓過濾效果。當圖片尺寸被拉伸或者壓縮時,開啓過濾效果可以保持較好的顯示效果。
android:gravity
當圖片小於容器的尺寸時,設置此項可以對圖片進行定位。這個屬性選項比較多,不同的選項可以通過“|”來組合使用
android:mipMap
一種圖像處理技術,不常用
android:titleMode
平鋪模式。這個選項有如下幾個值:["disable"]["clamp"]["repeat"]["mirror"]disable表示關閉平鋪模式,此值爲默認值。其它三個都表示開啓平鋪模式,但效果有差別,具體在使用中感受。
ShapeDrawable
ShapDrawable是一種很常見的Drawable,可以理解爲通過顏色來構造的圖形,他既可以是純色的圖形,也可以是具有漸變效果的圖形。語法規則如下:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape=["rectangle" | "oval" | "line" | "ring"] >
<corners
android:radius="integer"
android:topLeftRadius="integer"
android:topRightRadius="integer"
android:bottomLeftRadius="integer"
android:bottomRightRadius="integer" />
<gradient
android:angle="integer"
android:centerX="integer"
android:centerY="integer"
android:centerColor="integer"
android:endColor="color"
android:gradientRadius="integer"
android:startColor="color"
android:type=["linear" | "radial" | "sweep"]
android:usesLevel=["true" | "false"] />
<padding
android:left="integer"
android:top="integer"
android:right="integer"
android:bottom="integer" />
<size
android:width="integer"
android:height="integer" />
<solid
android:color="color" />
<stroke
android:width="integer"
android:color="color"
android:dashWidth="integer"
android:dashGap="integer" />
</shape>
<padding>
內容與視圖邊界的距離