通过检查多个CheckBox从CheckBox图像访问ImageView的scr

时间:2017-08-05 13:26:38

标签: android android-imageview android-checkbox

我试图通过访问CheckBox中的图像源来更改ImageView中的图像。这是我的xml代码的一部分

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/myimage"
    android:id="@+id/img"/>
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/image1"
     android:id="@+id/q4op1"/>
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/images2"
     android:id="@+id/q4op2"/>
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/images"
    android:id="@+id/q4op3"/>
<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/download"
    android:id="@+id/q4op4"/>

我想检查CheckBox是否被选中。如果选中则该CheckBox的 drawableRight 中的图像应出现在ImageView中。

你能指导我如何为此编写java代码吗?

1 个答案:

答案 0 :(得分:1)

我认为这可以解决您的问题。下面的代码将为您提供所有可绘制的内容。

Drawable[] drawables = textView.getCompoundDrawables();

现在,如果你想比较那么你可以使用

Bitmap bmp1 = ((BitmapDrawable)drawables[1] ).getBitmap();
Bitmap bmp2 = ((BitmapDrawable)getResources().getDrawable(R.drawable.twt_hover)).getBitmap();

if(bmp1 == bmp2)
{
   //Code block
}

OR

在你的情况下

// Left(0), top(1), right(2), bottom(3) drawables.
// This is the right drawable.
Drawable rightCompoundDrawable = drawables[2];

检查复选框是否已选中

cb = (CheckBox) rowView.findViewById(R.id.q4op1); 
if(cb.isChecked()) {
  // do your drawable task here
}