標籤:知識 填充 開發工程師 cto pre androi draw 動手 center
前言
大家好,給大家帶來Android開發工程師文集-1 小時學會各種Drawable
的概述,希望你們喜歡
Drawable介紹
Drawable為抽象類別,drawable與view有區別的地方,主要是體現事件和互動性上面。
view是面向使用者的,是可見的控制項,能給它添加點擊事件。drawable則相反,不能面向,也不可見,也不能添加點擊事件。
drawable有好多子類,drawable為抽象類別,所以有很多子類來繼承它。
主要原理方法
BitmapDrawable 巴特美drawable
該子類為bitmap的封裝,可以保持原圖片大小,填充,展開。
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/ic_launcher" android:tileMode="mirror"//平鋪 android:antialias="true"//消除鋸齒 android:dither="true"></bitmap>
LayerDrawable 勒兒drawable
該子類就是來管理一組drawable的,第一張圖片的放置,那麼第二張圖片會在第一張圖片上,由此依次放置。
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="40dp" android:left="40dp" android:src="@drawable/picture_1" android:gravity="center"> </item> <item android:top="40dp" android:left="40dp" android:src="@drawable/picture_2" android:gravity="center"> </item></layer-list>
StateListDrawable
該類StateListDrawable根據不同狀態提供不同圖片。
<?xml version="1.0" encoding="utr-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:drawable="@drawable/botton_1"/> <item android:state_pressed="true" android:drawable="@drawable/botton_2"/> <item android:state_selected="true" android="@drawable/botton_3"/> <item android:drawable="@drawable/botton_4"/></selector>
LevelListDrawable
該子類有不同的item -setlevel();
<level-list xmlns:android="http://schemas.android.om/apk/res/android"> <item android:drawable="@drawable/off" android:minLevel="5" android:maxLevel="10"> </item> <item android:drawable="@drawable/on" android:minLevel="10" android:maxLevel="20"> </item></level-list>
public void On(View v){ iv.setImageLevel( //int );}
TransitionDrawable --- transi tion drawable
為LayerDrawable的子類,只有兩張圖片的變化,沒有多個圖片,LayerDrawable可以有多個item,而transitiondrawable只有兩個item。
<transition xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/off"> </item> <item android:drawable="@drawable/on"> </item></transition>
public void On(View v){ TransitionDrawable drawable=iv.getDrawable(); //開啟 startTransition(); drawable.startTransition(2000);}public void Off(View v){ TranstionDrawable drawable=iv.getDrawable(); //關閉 reverseTransition(); drawable.reverseTransition(2000);}
InsertDrawable
InsertDrawable表示內嵌圖片==padding
<inset xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/background" android:insetLeft="50dp" android:insetRight="50dp" android:insetTop="50dp" android:insetBottom="50dp"></inset>
ClipDrawable 可累drawable
該ClipDrawabel是一種裁剪的形式,如同進度條。
<clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/picture" android:clipOrientation="horizontal" android:gravity="left"/>
ClipDrawable drawable=iv.getDrawable();drawable.setLevel(5000);//範圍0-10000;
DIY的Drawable
自己動手試試吧
梳理:
BitmapDrawable,
LayerDrawable,
StateListDreawable,
LevelListDrawable,
TransitionDrawable,
InsertDrawable,
ClipDrawable.
總結
- 本文講了Android開發工程師文集-1 小時學會各種Drawable,如果您還有更好地理解,歡迎溝通
- 定位:分享
Android
&Java
知識點,有興趣可以繼續關注
Android開發工程師文集-1 小時學會各種Drawable