Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中Drawable的詳細介紹

Android中Drawable的詳細介紹

編輯:關於Android編程

Drawable的簡介

Android中包含了很多的Drawable,Drawable可以是一張圖片,同時也可以是顏色構造的圖形,因此在Drawable有時候沒有大小的分別。在本篇博客中,將會詳細講解Drawable的用法;
- BitmapDrawble
- LayerDrawable
- LevelListDrawable
- TransitonDrawable
- InsetDrawable
- ClipBitmap

BitmapDrawble詳細介紹

BitmapDrawble是最常見的,也是我們經常使用的。
我們看一下布局代碼,首先建立一個bitmapdrawble.xml



我們看一下每個詞語的意思
- src 表示資源圖片
- dither表示是否開啟抖動效果,作用是手機像素配置和圖片像素配置不一致時,系統會自動調整顯示效果。
- antialias表示是否抗鋸齒
- tileMode表示圖片的模式,其中包含了四中模式。mirror表示鏡像,repeat表示重復,disable表示使用默認的樣式。下面我們會看一下四中情況的詳細表示。

我們將bitmap作為背景圖片應用於主布局main.xml中



我們設置tileMode為mirror時,效果如下
這裡寫圖片描述
我們將tileMode為repeat時,效果如下
這裡寫圖片描述
我們將tileMode為clamp時,效果如下
這裡寫圖片描述

LayerDrawable

LayerDrawable表示一個層次化的Drawable,按照順序繪制,最後繪制的圖形顯示在最上面。
我們繪制一個bitmap.xml



       //距離左邊的距離
         
     
     
         
     

我們在main.xml中定義一個ImageView,並將上面的額bitmap作為其資源。


    

效果圖如下圖所示
這裡寫圖片描述
我們可以看出來顯示了兩張圖片,第一張圖片在最下面,第二張圖片疊加在第一張圖片之上。

LevelListDrawable

LevelListDrawable是一個等級的drawble。在這裡主要通過設置控件的等級來實現改變圖片的選擇。接下來我們通過代碼來實現。
我們首先建立一個level.xml



        
     
     

     

當設定的空間的level值位於哪個圖片的區間,就顯示哪個圖片。
這個levelListDrawable文件表示當控件的level處於0~10之間的時候,顯示圖片image01,當控件的level處於11~20之間的時候顯示圖片image02。
我們將上述的level.xml應用於主布局中的ImageView。


    

在activity中代碼如下

private ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
        iv.setImageLevel(8);
    }

    public void onClik(View v){
        switch (v.getId()) {
        case R.id.one:
            iv.setImageLevel(8);
            break;
        case R.id.two:
            iv.setImageLevel(18);
            break;

        default:
            break;
        }

    }

點擊第一個button顯示下圖,點擊第二個圖片顯示第二幅圖片
這裡寫圖片描述這裡寫圖片描述

TransitonDrawable

TransitonDrawable是實現兩個Drawable之間淡入淡出的效果。



        
     
     
     

將其應用到背景圖片上面

在activity中書寫

private ImageView iv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);
        //iv.setImageLevel(8);
    }

    public void dochange(){
        TransitionDrawable drawble = (TransitionDrawable) iv.getDrawable();
        drawble.startTransition(2000);
    }
    public void onClik(View v){
        switch (v.getId()) {
        case R.id.one:
            dochange();
            //iv.setImageLevel(8);
            break;
            }

ClipDrawable

主要對Drawable進行剪裁。


其中clipOrientation表示剪裁的方向。

在mainActivity中代碼如下

iv = (ImageView) findViewById(R.id.iv);
        ClipDrawable clip = (ClipDrawable) iv.getDrawable();
        clip.setLevel(5000);

level屬性的取值范圍為0~10000,0表示完全剪裁,10000表示完全不剪裁,5000則表示剪裁一半。
以上就是各種drawable的使用。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved