android图像显示根据用户对活动的选择

时间:2013-06-26 20:41:32

标签: android android-layout android-intent android-emulator

我是Android的新手,想知道为什么会这样做。如果我在res文件夹中有一组图像,我想根据用户选择显示它们,以便Mainactivity如下: - < / p>

   public class Activity3 extends Activity {
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.drawable.img1);//here i put the image name
        }
    }

Suppose i use this code snippet
   public class Activity3 extends Activity {
        public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   if(R.id.text1=='1')
      setContentView(R.drawable.img1);
    else
      setContentView(R.drawable.img2);

}
    }

这不起作用。但是我想知道为什么,android的东西是如何真正起作用的。这在我看来在逻辑上是正确的。

2 个答案:

答案 0 :(得分:1)

您无法将drawable设置为setContentView,但您可以这样做:

setContentView(R.layout.MyLayout);     
    ImageView view = (ImageView)findViewById(R.id.myviewid);
        view.setImageResource(R.drawable.img1);

在每次点击中添加view.setImageResource(R.drawable.img1);即可更改imageView资源。

答案 1 :(得分:0)

如果您仔细查看文档,可以看到setContentView方法的定义:

public void setContentView (int layoutResID)

如果你注意到,方法收到 layoutResId ,关键字是布局,记住android使用了逻辑(view-controller),一个activity是控制器并且布局是视图。您可以在视图中使用可视元素,例如图像(在android中可以包含在ImageView中)。

例如,您可以按照下一种方式定义xml布局:

<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/selected_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

</ImageView> 

此xml仅包含一个ImageView,在此ImageView中,id为selected_image,您将显示选择图像。

在您的活动中,您需要输入下一个代码(想象一下xml布局调用image_layout.xml):

public class Activity3 extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.image_layout);

        //here you need find the ImageView in this layout
        ((ImageView) findViewById(R.id.selected_image).setImageResource(R.drawable.img1);
    }
}