0

我想让 imageView 将它显示的图像更改为与我的可绘制对象不同的图像。我发现的所有其他方法都尝试过导致应用程序崩溃。活动中有 2 个图像视图,我希望能够更改两者显示的内容,但彼此独立。我是 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

4 回答 4

1
img = ( ImageView )findViewById( R.id.imageView1 );
Drawable myDrawable = getResources().getDrawable(R.drawable.imagename);
img.setImageDrawable(myDrawable);
于 2013-06-16T10:21:37.590 回答
1

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

Drawable myDrawable = getResources().getDrawable(R.id.imageView1);
img.setImageDrawable(myDrawable);
于 2013-06-15T20:54:38.067 回答
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();
}
于 2013-06-16T00:21:07.903 回答
0

您将哪个文件夹用于图像 src?我认为问题出在可绘制文件夹中。手动创建,无需 hdpi、ldpi 等扩展,并将图片放入其中

于 2013-06-15T20:43:58.137 回答