点击按钮后用另一张图片替换原图

3

我在xml文件中定义了一个图片(imageview)。我想在活动中点击按钮后将其更改为另一张图片。我该如何做到这一点?


2
如果一个答案解决了你的问题,通常被认为是一种良好的做法去“接受”这个答案。你可以通过点击最佳答案旁边的“打勾”来完成这个操作。 - Taryn East
8个回答

4

首先,您需要在活动类中实现OnClickListener接口。 Java代码

    package it.codegen.tbx.my;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;

public class MytestdroidActivity extends Activity implements OnClickListener {


    Button b1;
    ImageView iw;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

       b1 = (Button) findViewById(R.id.button1);
       b1.setOnClickListener(this); 

       iw = (ImageView) findViewById(R.id.icon);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if (v == b1)
        {
            iw.setImageResource(R.drawable.camara);
        }

    }
}

XML 文件

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

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
<ImageView android:id="@+id/icon" android:layout_height="wrap_content"
         android:layout_width="wrap_content"
         android:src="@drawable/icon"
        />
<Button android:text="Button" android:id="@+id/button1"
 android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>


</LinearLayout>

您应该在drawable文件夹中拥有2个图片,分别命名为icon和camara。

你好...假设我正在执行一项活动。用户点击发光图像...如果用户从一个活动转到另一个活动,然后再次回到活动一,按钮是否仍然保持发光状态? - Wini

2
public void onClick(View v) {
image1.setImageResource ( R.drawable.another);
}

1
如何在下一次点击时获取原始图像? - Arjun

1
这是一个非常基础的东西,你应该通过做教程和阅读入门文档来学习。这里有一个示例:
findViewById(R.id.button).setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        final ImageView imageView = (ImageView) findViewById(R.id.image_view);
        imageView.setImageResource(R.drawable.some_drawable);
    }
}

1
尝试类似这样的东西:
final Button switchButoon = new Button(mContext);
final ImageView imageView = new ImageView(mContext);

switchButoon.setOnClickListener(new View.OnClickListener() {
    public void onClick(View view) {
        imageView.setImageResource(R.drawable.icon);
    }
});

1

为此,我使用了ToggleButton并分配自定义选择器作为背景:

<ToggleButton android:background="@drawable/custom_selector>

为了避免修改源代码,请使用一个选择器,你可以将其放置在drawable\custom_selector.xml目录中,例如:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/image_pressed" android:state_checked="true" />
    <item android:drawable="@drawable/image" />
</selector>

1
创建这个变量很简单,首先我会定义一个类型为ImageView的变量OldImage,并将其与布局文件中的ImageView链接起来。
 ImageView oldImage = (ImageView) findViewById(R.id.oldImageFileName);

//创建一个OnClickListener方法,在单击时更新文件资源为NewFileName

 oldImage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                oldImage.setImageResource(R.drawable.newFileName);
            }
        });

0

我希望我能解决它

ImageView imagen = (ImageView)findViewById(R.id.imageViewX);
imagen.setOnClickListener(new View.OnClickListener() {
     @Override
     public void onClick(View view) {
        ImageView perse = (ImageView) findViewById(R.id.imageViewX);
        perse.setImageResource(R.drawable.fondochange);
     }
});

0
在按钮点击监听器中,只需设置您的图像,如下所示:
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
    imageView.setImageResource(R.drawable.your_image);
}});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接