显示不同的图像形式可绘制而无需切换活动

时间:2015-05-27 17:46:20

标签: android android-imageview android-view android-drawable

Buttons on another Layout and images that will be open on buttons click will be open in another layout

如图所示,每个按钮点击都有不同的图像,我不想为view1,view2,view3和view4进行不同的活动来显示图像:

enter image description here

问题:

我是Android应用开发的新手。我希望在不同的按钮点击时显示不同的图像,而不切换每个按钮的活动!请帮帮我..提前致谢。

2 个答案:

答案 0 :(得分:0)

在您的activity_main.xml中(或者您是如何调用它的)只需为布局添加id:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainView" <!--this id-->
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

然后在您的活动中创建一个字段

Layout layout;

然后输入onCreate():

layout = (Layout) findViewById (R.id.mainView);

然后在按钮的onClick上,您可以使用以下方式更改背景:

layout.setBackground(Drawable drawable);

而不是“布局”,您可以使用您的布局。就我而言,它是“RelativeLayout”

编辑:根据您上次编辑,如果要隐藏显示图像的按钮。您可以使用片段:

http://developer.android.com/guide/components/fragments.html

或者您可以使用

隐藏onClicks中的按钮
yourButton.setVisibility(View.GONE);

然后在您的活动中覆盖onBackPressed()方法,如:

@Override
public void onBackPressed()
{
     yourButton.setVisibility(View.VISIBLE);//for each button
     super.onBackPressed();
}

当然,您需要为按钮设置字段并在onCreate()中启动它们,如上面的Layout。在这两种情况下,如果按“返回”,您将再次看到按钮。

答案 1 :(得分:0)

您可以使用intent,setOnClickListener作为按钮:

    @Override
    public void onClick(View v) {
        int id = v.getId();
        switch (id) {
        case id == R.id.buttonView1:
            Intent intent1 = new Intent(this, ShowImage.class);
            intent.putExtra("image", R.drawable.image1);
            startActivities(intent);
        case id == R.id.buttonView2:
            Intent intent2 = new Intent(this, ShowImage.class);
            intent2.putExtra("image", R.drawable.image2);
            startActivities(intent2);
        }
    }

在ShowImage活动中获取图片ID资源:

int image = getIntent().getIntExtra("image", R.drawable.default_image);
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageResource(image);

在ShowImage的布局中:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/ic_launcher" />

</LinearLayout>