Android ImageButton 的图片将替换为另一张图片

Android ImageButton's image to be replaced with another image

我有一个 ImageButton,我希望 onClick 将其替换为另一张图片(来回翻转)并长按,将其替换为另一张图片。

我该怎么做?

我不想为此看长篇纪录片。

如果您打算学习 Android(或任何语言或平台),您应该真正熟悉阅读所提供的文档,因为它会给您许多基本问题的答案,例如如何使用各种方法和 类.

除此之外,您需要为按钮设置 OnClickListener 和 OnLongClickListener。然后在这些侦听器中,您需要使用 setImageResource() 方法设置图像。该方法需要一个可绘制图像,您应该将其保存在可绘制文件夹中(如果没有,请将其放在那里!)

您没有 post 现有代码,所以这是一个通用示例。

ImageButton button = (ImageButton) findViewById(R.id.img_button);
button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        button.setImageResource(R.drawable.pic1);
    }
});
button.setOnLongClickListener(new OnLongClickListener() {
    public boolean onLongClick(View v) {
        button.setImageResource(R.drawable.pic2);

        return true; // <-- This must be true.
    }
});

您可以进一步阅读 the button guide 中有关如何使用任何按钮的信息,您只需在适当的地方换成 ImageButton。

为您的按钮设置 onClickListeners,然后更改可绘制对象。由于您没有任何代码,因此以下内容基于仅概述如何执行所需操作的动态 ImageButton。我建议您先在 XML 布局中定义 ImageButton,然后使用 iBtn = (ImageButton) findViewById(R.id.btnID);

ImageButton iBtn = new ImageButton(this);
        iBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                iBtn.setImageDrawable(getResources().getDrawable(R.drawable.img1);

            }
        });
        iBtn.setOnLongClickListener(new View.OnLongClickListener() {

            @Override
            public boolean onLongClick(View v) {
                iBtn.setImageDrawable(getResources().getDrawable(R.drawable.img2);
                return true;
            }
        });

将 ImageButton 添加到您的布局中:

 <ImageButton
    android:id="@+id/img_btn1"
    android:src="@drawable/imgc"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

然后将此代码添加到您的 Activity Oncreate() 方法

 ImageButton imageButton;
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

     imageButton = (ImageButton) findViewById(R.id.img_btn1);

    imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            imageButton.setImageResource(R.drawable.imga);
        }
    });


    imageButton.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View v) {
            imageButton.setImageResource(R.drawable.imgb);
            return true;
        }
    });

}

根据您放置在可绘制文件夹中的图像更改 imga、imgb、imgc 名称