Android 使用长单击更改图像按钮图像(来自图库)

Android 使用长单击更改图像按钮图像(来自图库),android,android-gallery,android-imagebutton,Android,Android Gallery,Android Imagebutton,我搜索了论坛,但没有找到任何具体的或可以理解的问题的答案 我想将Imagebutton图像更改为从库中选择的图片。关闭应用程序后,映像应保持更改状态 我的按钮XML如下所示: <ImageButton android:id="@+id/eat" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marg

我搜索了论坛,但没有找到任何具体的或可以理解的问题的答案

我想将Imagebutton图像更改为从库中选择的图片。关闭应用程序后,映像应保持更改状态

我的按钮XML如下所示:

<ImageButton
        android:id="@+id/eat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:adjustViewBounds="true"
        android:background="@drawable/eat"
        android:clickable="true"
        android:longClickable="true"
        android:scaleType="fitCenter" />

我也想在这里添加OnLongClick方法(因为toonclick已经准备好了,图像替换应该有点不同),但是还没有找到正确的方法。您能给我一点指导吗?

您需要从image的onLongClickListener返回true

像这样:

eat.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        //do something
        return true;
    }

});

eat.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mp1.start();
    }
});

这不会导致调用图像的onClickListener,因为这意味着操作已在longClickListener中处理。

您需要从onLongClickListener返回true。谢谢。它可以工作。但不是我的另一个问题。是否可以从那边的图库中添加图片并替换原始图像?我在onClickListsener中的代码如下:@Override public boolean onLongClick(视图v){int RESULT\u LOAD\u IMAGE=1;Intent i=newintent(Intent.ACTION\u PICK,android.provider.MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI);startActivityForResult(i,RESULT\u LOAD\u IMAGE);这只允许我选择图像,但不能替换它。您可以帮助吗?返回true;}
eat.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        //do something
        return true;
    }

});

eat.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        mp1.start();
    }
});