ClipDrawableの使用

4404 ワード

ClipDrawableの使用
ClipDrawableはラベルに対応し、現在のレベル(level)に基づいて別のdrawableを裁断することができます.切り取りの方向はandroid:clipOrientationとandroid:gravityプロパティで共通に制御できます.
例:1.clip_drawable.xmlファイル
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@mipmap/ic_launcher" android:clipOrientation="vertical" android:gravity="top">

    <!--clipOrientation:        -->
    <!--gravity:     。top,bottom,left,right,center,center_vertical,center_horizontal 。-->
</clip>

2.activity_main.xmlファイル
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="www.yundo.com.drawable.MainActivity">

    <ImageView  android:id="@+id/iv" android:src="@drawable/clip_drawable" android:background="@color/red" android:layout_width="match_parent" android:layout_height="200dp" />
</RelativeLayout>

3.MainActivityファイルで
public class MainActivity extends AppCompatActivity {

    private ImageView mImageView;
    private boolean isBlueToRed;
    private TransitionDrawable tranBackground;
    private ClipDrawable clipBackground;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mImageView = (ImageView) findViewById(R.id.iv);

        clipBackground = (ClipDrawable) mImageView.getDrawable();

        mImageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clip();
            }
        });
    }
    private void clip() {
        //level 0-10000  ,0      ,10000       。      ,        。
        clipBackground.setLevel(5000);
    }
}