Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Drawable(二)

Android Drawable(二)

編輯:關於Android編程

概述

之前已經介紹了ShapeDrawable的主要使用方法,今天將主要介紹一些其他的Android定義好的drawable類,如BitmapDrawable、LayerDrawable等。

Drawable官網地址:https://developer.android.com/guide/topics/resources/drawable-resource.html

BitmapDrawable

xml定義

屬性解釋

andorid:src:指定的圖片資源id android:antialias:抗鋸齒效果,使得圖片在顯示時顯得更加平滑。 android:dither:抖動效果,當圖片的像素和設備的屏幕像素不一樣時,在一定程度上減少圖片的失真。 android:filter:濾鏡效果,使圖片被壓縮拉升能夠有好的顯示效果。 android:gravity:設置圖片的擺放位置。 android:mipMap:不太明白這個屬性的作用 android:tileMode:平鋪模式。默認disable不開啟平鋪。repeat重復模式;mirror在水平或者豎直方向上實現投影效果;clamp在圖片拉升時讓圖片四周的像素擴展到周圍區域 android:tileModeX和android:tileModeY:作用同android:tileMode,分別指定水平和豎直方向上的平鋪模式。

gravity屬性詳解

具體使用





//代碼中引用

    

效果如下:

repeat模式:
repeat模式

mirror模式:
mirror模式

clamp模式:
clamp模式

LayerDrawable

LayerDrawable:對應於標簽,它實現一種層次化的drawable集合,通過將不同的drawable放在不同的層次上顯示一種疊加的效果。默認情況下,中的所有的drawable都會被縮放至View的大小,為了避免這種情況,可以通過使用避免圖片的縮放。

xml定義



    

屬性解釋

android:left、android:top、android:right、android:bottom:分別表示圖片在view上的偏移量 android:id:表示每個item的id,可以通過該id修改圖片的屬性 android:drawable:圖片資源

具體使用




    
    

    






    
        

    
    

        
    
    

        
    

效果圖:
layerlistdrawable演示

LevelListDrawable

LevelListDrawable,對應於標簽,它同樣表示一個drawable集合,集合中的每個item都會設置一個等級,這樣通過設置item的Level,實現顯示不同的drawable。每個item都可以設置android:maxLevel和android:minLevel,drawable的等級的方位是0-10000,默認是0。同樣在item中,圖片同樣會被縮放,所以需要使用標簽。

xml定義



    

示例




    
        

    
    
        

    
    

        
    
    
        
    

    public void setLevel(View view) {
        EditText edittest = (EditText) findViewById(R.id.et_level);
        String trim = edittest.getText().toString().trim();
        int i = Integer.parseInt(trim);

        ImageView imageview = (ImageView) findViewById(R.id.iv_level);
        LevelListDrawable drawable = (LevelListDrawable) imageview.getDrawable();
//        drawable.setLevel(i);
        imageview.setImageLevel(i);
    }

效果圖:
levellistdrawable演示

TransitionDrawable

TransitionDrawable,對應於標簽,用於實現兩個drawable的淡入淡出。通過Drawable的startTransition和reverseTransition方法實現淡入淡出和其逆過程。

xml定義



    

具體示例



    
    
    /**
     * TransitionDrawable 淡入淡出
     *
     * @param view
     */
    public void setTransition(View view) {
        ImageView imageview = (ImageView) findViewById(R.id.iv_transition);
        TransitionDrawable drawable = (TransitionDrawable) imageview.getDrawable();
//        drawable.startTransition(1000);
        drawable.reverseTransition(1000);

    }

效果圖:
transitiondrawable演示

InsetDrawable

InsetDrawable,對應標簽,主要實現drawable的內嵌,並可以設置drawable的邊距。

xml定義


具體實現


效果圖:
InsetDrawable演示

ClipDrawable

ClipDrawable,對應於標簽,它可以根據自己的Level來裁剪drawable,裁剪方向通過android:clipOrientation和android:gravity兩個屬性同時決定。drawable的level范圍是0-10000,默認是0,表示完全裁剪,10000表示完全不裁剪。

xml定義


ClipDrawable gravity屬性詳解

示例


    /**
     * LevelListDrawable 設置等級
     *
     * @param view
     */
    public void setClip(View view) {
        EditText edittest = (EditText) findViewById(R.id.et_level);
        String trim = edittest.getText().toString().trim();
        int i = Integer.parseInt(trim);

        ImageView imageview = (ImageView) findViewById(R.id.iv_clip);
        imageview.setImageLevel(i);
    }

效果圖:
ClipDrawable演示

ScaleDrawable

ScaleDrawable,對應標簽,它可以根據自己的level講指定的drawable縮放到一定的等級。

注意:
在ScaleDrawable中,drawable的level的等級會影響drawable的縮放。

level為0,drawable不可見 levle為10000(>10000),drawable完全顯示,無法縮放 一般情況下,在使用ScaleDrawable時,會將drawable的level設置成1,這樣drawable的縮放就會按照android:scaleHeight和android:scaleWidth屬性縮放。

xml定義


屬性解釋

android:scaleGravity:同shape的gravity android:scaleHeight和android:scaleWidth:分別表示對指定drawable的高和寬的縮放,百分數。

具體示例



    /**
     * ScaleDrawable 設置縮放1
     *
     * @param view
     */
    public void setScale1(View view) {

        EditText mEtLevel = (EditText) findViewById(R.id.et_level);
        String trim = mEtLevel.getText().toString().trim();
        int i = Integer.parseInt(trim);

        ImageView imageview = (ImageView) findViewById(R.id.iv_scale1);
        ScaleDrawable drawable = (ScaleDrawable) imageview.getDrawable();

        drawable.setLevel(i);
    }

    /**
     * ScaleDrawable 設置縮放1
     *
     * @param view
     */
    public void setScale2(View view) {
        EditText mEtLevel = (EditText) findViewById(R.id.et_level);
        String trim = mEtLevel.getText().toString().trim();
        int i = Integer.parseInt(trim);

        ImageView imageview = (ImageView) findViewById(R.id.iv_scale2);
        ScaleDrawable drawable = (ScaleDrawable) imageview.getDrawable();
        drawable.setLevel(i);
    }

效果圖:
ScaleDrawable演示

StateListDrawable

StateListDrawable即選擇器,對於這個大家都比較熟悉了,這裡不做介紹

xml定義



    

NinePatchDrawable

NinePatchDrawable即.9格式圖片,在使用上和普通圖片一樣,在這裡不做介紹。

xml定義


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