我试图通过点击差异图像来实现ClipDrawable
我使用简单的图像
代码:
MainActivity.java
ImageView imageview = (ImageView) findViewById(R.id.image);
drawable = (ClipDrawable) imageview.getDrawable();
drawable.setLevel(0);
imageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawable.setLevel(drawable.getLevel()+1000);
}
});
activity_main.xml中
<ImageView
android:id="@+id/image"
android:src="@drawable/clip_source"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
clip_source.xml
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/tree"
android:clipOrientation="vertical"
android:gravity="bottom"
/>
这是有效的,但对于我的项目,我需要更改用变量显示的图像,以根据用户输入显示不同的图像
答案 0 :(得分:0)
我只找到一种方法,为每个ClipDraw使用不同的文件
MainActivity.java
if(aa == false){
t = (ClipDrawable) getResources().getDrawable(R.drawable.clip1);
}else{
t = (ClipDrawable) getResources().getDrawable(R.drawable.clip2);
}
setContentView(R.layout.activity_main);
ImageView imageview = (ImageView) findViewById(R.id.image);
imageview.setBackgroundDrawable(back);
imageview.setImageDrawable(t);
t.setLevel(0);
imageview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
t.setLevel(t.getLevel()+1000);
}
});
activity_main.xml中
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
clip1.xml
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/farm"
android:clipOrientation="vertical"
android:gravity="bottom"
/>
clip2.xml
<?xml version="1.0" encoding="utf-8"?>
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/werehouse"
android:clipOrientation="vertical"
android:gravity="bottom"
/>
这解决了我的问题但是缺点是每个图像都需要一个文件,而且我需要至少20个