Android開發工程師文集-1 小時學會各種Drawable

來源:互聯網
上載者:User

標籤:知識   填充   開發工程師   cto   pre   androi   draw   動手   center   

前言

大家好,給大家帶來Android開發工程師文集-1 小時學會各種Drawable的概述,希望你們喜歡

Drawable介紹

Drawable為抽象類別,drawable與view有區別的地方,主要是體現事件和互動性上面。

view是面向使用者的,是可見的控制項,能給它添加點擊事件。drawable則相反,不能面向,也不可見,也不能添加點擊事件。

drawable有好多子類,drawable為抽象類別,所以有很多子類來繼承它。

主要原理方法
  • draw()
  • setBounds()
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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.