更改imageView中显示的图像

时间:2013-06-15 20:41:27

标签: android imageview

我想让一个imageView将它显示的图像更改为与我的drawables不同的图像。我发现一个尝试的所有其他方法导致应用程序崩溃。活动中有2个imageViews,我希望能够更改显示的内容,但彼此独立。我是Java脚本的新手,所以最简单和最基本的答案对我有用。

这是我的XML:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:src="@drawable/a"
    android:contentDescription="@string/a_mode"
    android:onClick="startAMode" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:src="@drawable/p"
    android:contentDescription="@string/p_mode"
    android:onClick="startPMode" />

这是我当前的Java脚本:

public class SelectorActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    setContentView(R.layout.activity_selector);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.selector, menu);
    return true;
}

public void startAMode(View view) {
    ImageView img = (ImageView) findViewById(R.id.imageView1);
    img.setImageResource(R.drawable.adown);
}

}

这不起作用:

    public void startAMode(View view) {
    ImageView img = (ImageView) findViewById(R.id.imageView1);
    img.setImageResource(R.drawable.adown);
}

4 个答案:

答案 0 :(得分:2)

首先定义Drawable,然后在ImageView中设置它。

Drawable myDrawable = getResources().getDrawable(R.id.imageView1);
img.setImageDrawable(myDrawable);

答案 1 :(得分:1)

你的方法应该是“public void startAMode(){...}”,你需要在onCreate()上调用它,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
    setContentView(R.layout.activity_selector);

    startAMode();
}

答案 2 :(得分:1)

img = ( ImageView )findViewById( R.id.imageView1 );
Drawable myDrawable = getResources().getDrawable(R.drawable.imagename);
img.setImageDrawable(myDrawable);

答案 3 :(得分:0)

你用于图像src的文件夹是什么?我认为问题出在drawable文件夹中。手动创建它,无需hdpi,ldpi和其他扩展,并将图像放入其中