本文出自 “阿敏其人” 簡書博客奔则,轉(zhuǎn)載或引用請注明出處。
Drawable就是一個圖像的對象蔽午,其可能是一張位圖易茬,也可能是一個圖形。
(說明一點:eclipse下我們放圖片一般都是放在drawable的五個不同設(shè)配分辨率的文件夾下及老,但是在android studio下是存放在mipmap的五個文件夾下的)
一抽莱、Drawable的簡介
Android把可繪制的對象抽象為Drawable,不同的圖形圖像資源就代表著不同的drawable類型骄恶。Android FrameWork提供了一些具體的Drawable實現(xiàn)岸蜗,通常在代碼中都不會直接接觸Drawable的實現(xiàn)類。
在實際的開發(fā)過程中叠蝇,會把使用到的資源都放置在res/drawable目錄璃岳,剩下的工作交給Android SDK 就行了年缎,當需要使用圖片資源的時候,可以使用@drawable標志在xml中引用drawable資源就行铃慷,也可以在代碼中使用id引用這些drawable資源单芜。
在使用drawable資源的時,有一點需要注意犁柜,drawable默認是內(nèi)存共享的洲鸠,也就說在不同的地方使用了同一個drawable,它們都指向相同的資源馋缅,而且具有相同的狀態(tài)扒腕,如果在一個地方修改了這個drawable,所有使用它的地方都會改變萤悴。
- Drawable有很多種瘾腰,但是簡單說到底既可以說就是圖像。
- Drawable是一個抽象類覆履,它使所有Drawable對象的基類蹋盆。
- Drawable可以通過getIntrinsicWidth和getIntrinsicHeight這兩個參數(shù)獲得內(nèi)部的寬高。圖片的Drawable才有寬高硝全,顏色的Drawable沒有寬高栖雾,圖片的Drawable在用作背景是會被拉伸,那么這個時候我們就要區(qū)分Drawable的寬高和View的寬高了伟众。
二析藕、Drawable的分類
平常我們把圖片拉進去對應(yīng)的Drawable文件夾(或者說mipmap文件夾,下面都稱為drawable文件夾)這就不用說了凳厢。這是我們最常見的方式账胧。
Android內(nèi)置了如下幾種Drawable類型:
- BitmapDrawable Drawable子類之—— BitmapDrawable (可控制對齊平鋪的圖像)
- ColorDrawable
- GradientDrawable
- NinePatchDrawable
- InsetDrawable Drawable子類之——InsetDrawable (嵌入)
- ClipDrawable Drawable子類之——ClipDrawable (裁剪圖像)
- ScaleDrawable
- RotateDrawable
- AnimationDrawable
- LayerDrawable Drawable子類之——LayoutDrawable (圖層疊加)
- LevelListDrawable Drawable子類之——LevelListDrawable (等級列表圖片)
- StateListDrawable Drawable子類之—— ShapeDrawable (圖形定義)
- TransitionDrawable Drawable子類之——TransitionDrawable (漸變)
說起來有13個,但是常用的只有一部分数初。我們說的也只是一部分找爱。