Android中使用Drawbl資源

山有木xi發表於2020-05-27

Drawble是Android應用中使用最靈活,也是最廣泛的資源,不僅可以直接使用".png",".jpg",".9.png"等圖片做為資源,也可以直接使用多種XML檔案作為資源。只要一份XML檔案可以被系統編譯成Drawble子類的物件,那麼這份XML檔案就可以作為Drawble資源

  • Drawble下圖片資源

最簡單的資源,吧 ".png",".jpg",".9.png"等格式放入/res/ drawble-xxx目錄下,Android應用在編譯應用時會自佛呢及時載入圖片,並在R清單類中生成該資源的索引

  • Drawble下StateList Drawble資源

用於組織多個 Drawble物件。當使用 StateList Drawble 作為目標元件的背景,背景圖片時, StateList Drawble 物件所心事的 Drawble物件會隨著目標元件的改變而自動切換

運用場景:高亮顯示文字框

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="
 <!-- 指定獲得焦點時的顏色 -->
 <item android:state_focused="true"
    android:color="#f44"/>
 <!-- 指定失去焦點時的顏色 -->
 <item android:state_focused="false"
    android:color="#ccf"/>
</selector>
  • Drawble下Layer Drawble資源

StateList Drawble有點類似, Layer Drawble也可以包含一個 Drawble陣列,因此字型將會按照這些 Drawble物件的陣列順序來繪製它們,索引最大的 Drawble物件將會被繪製在最上面

運用場景:定製拖動條外觀

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="
 <!-- 定義軌道的背景 -->
 <item android:id="@android:id/background"
    android:drawable="@drawable/grow" />
 <!-- 定義軌道上已完成部分的外觀-->
 <item android:id="@android:id/progress"
    android:drawable="@drawable/ok" />
</layer-list>
  • Drawble Shape Drawble資源

用於定義一個基本的幾何圖形(例如:圓形,矩形,線性),定義 Shape Drawble的XML檔案的跟元素的<shape...>

運用場景:橢圓形的文字框

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="
 android:shape="rectangle">
 <!-- 設定填充顏色 -->
 <solid android:color="#fff"/>
 <!-- 設定四周的內邊距 -->
 <padding android:left="7dp"
    android:top="7dp"
    android:right="7dp"
    android:bottom="7dp" />
 <!-- 設定邊框 -->
 <stroke android:width="3dip" android:color="#ff0" />
</shape>
  • Drawble下Clip Drawble資源

代表從全點陣圖上街區的一個圖片的片段,在XML中使用<clip..>開頭

運用場景:慢慢展開的風景

<?xml version="1.0" encoding="UTF-8"?>
<clip xmlns:android="
 android:drawable="@drawable/shuangta"
 android:clipOrientation="horizontal"
 android:gravity="center">
</clip>
  • Drawble Animation Drawble資源

代表一個動畫,既支援傳統的逐幀動畫,也支援透過平移、變換計算出來的補間動畫。

<?xml version="1.0" encoding="UTF-8"?>
<set xmlns:android="
 android:interpolator="@android:anim/linear_interpolator"
 android:duration="5000">
 <!-- 定義縮放變換 -->
 <scale android:fromXScale="1.0"
  android:toXScale="1.4"
  android:fromYScale="1.0"
  android:toYScale="0.6"
  android:pivotX="50%"
  android:pivotY="50%"
  android:fillAfter="true"
  android:duration="2000"/>
 <!-- 定義位移變換 -->
 <translate android:fromXDelta="10"
  android:toXDelta="130"
  android:fromYDelta="30"
  android:toYDelta="-80"
  android:duration="2000"/>
</set>


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69917874/viewspace-2694709/,如需轉載,請註明出處,否則將追究法律責任。

相關文章