ClipDrawableの使用
ClipDrawableの使用
ClipDrawableはラベルに対応し、現在のレベル(level)に基づいて別のdrawableを裁断することができます.切り取りの方向はandroid:clipOrientationとandroid:gravityプロパティで共通に制御できます.
例:1.clip_drawable.xmlファイル
2.activity_main.xmlファイル
3.MainActivityファイルで
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);
}
}