java - Android:比较 ImageButton 和资源中的图像

标签 java android bitmap drawable

我有一个 ImageButton,它的背景设置如下:

final ImageButton[][] gridButton = new ImageButton[5][5];
gridButton[0][0] = (ImageButton) findViewById(R.id.imageButton1);
gridButton[0][0].setImageResource(ButtonIcon.l[0]); //ButtonIcon.l[0] is an image ID from my resources folder.

gridButton[0][0].setOnClickListener(new View.OnClickListener() {
        ButtonIcon justAnObject = new ButtonIcon();
        @Override
        public void onClick(View v) {
            int newId = justAnObject.changeIconId(((BitmapDrawable)gridButton[0][0].getDrawable()).getBitmap());
//          int newId = justAnObject.changeIconId(gridButton[0][0].getDrawable());
            gridButton[0][0].setImageResource(newId);

        }
    });

在buttonIcon类中,我有一个进行比较的方法:

public int changeIconId(Bitmap object){
    if (object == ((BitmapDrawable) getResources().getDrawable(R.drawable.load0)).getBitmap()){
        return R.drawable.load1;
    }
    else return R.drawable.straight0;
}

所有 ID 均引用我的资源文件夹中的图像。我不太确定如何解决这个问题。

谢谢。

最佳答案

比较两个位图

public boolean equals(Bitmap bitmap1, Bitmap bitmap2) {
    ByteBuffer buffer1 = ByteBuffer.allocate(bitmap1.getHeight() * bitmap1.getRowBytes());
    bitmap1.copyPixelsToBuffer(buffer1);

    ByteBuffer buffer2 = ByteBuffer.allocate(bitmap2.getHeight() * bitmap2.getRowBytes());
    bitmap2.copyPixelsToBuffer(buffer2);

    return Arrays.equals(buffer1.array(), buffer2.array());
}

*更新后*

比较两个可绘制对象

Bitmap bitmap = ((BitmapDrawable)fDraw).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable)sDraw).getBitmap();

if(bitmap == bitmap2)
    {
        //Code blcok
    }

关于java - Android:比较 ImageButton 和资源中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15846817/

相关文章:

Java:哈希表在一个桶中存储具有相同哈希值的多个项目

java - 使用 JavaScript 或 CSS 在网页的不同位置多次显示相同的图像

android - 是否有适用于双 SIM 卡 Android 手机的 API?

android - Android Studio 2.3.3使用gradle-3.3.3和android-plugin-2.3.3构建错误

android - 从 res 从 Drawable 创建位图的有效方法(BitmapFactory 与类型转换)

Android 位图图像大小

java - 如何使用RandomAccessFile将UTF8数据写入xml文件?

Netbeans 中的 Java EE 6 Maven 项目设置 - 一些配置问题?

android - 为 App 设置自定义主题时 TextInputLayout 崩溃

c# - C# 中的 BitmapSource 对象出现问题