如何比较两个 ImageButtons 在 Android Studio 中使用完全相同的可绘制资源?

问题描述 投票:0回答:1

我想创建一个方法来检查两个 ImageButtons 是否使用完全相同的可绘制资源作为 Android Studio 中的背景图像。

我试过类似的东西:

public void isBackgroundImageTheSame() {
        if(findViewById(R.id.btn1).getDrawableState() == findViewById(R.id.btn2).getDrawableState()){
            //Execute some code
        }

但是这没有用。提前致谢!

java android button
1个回答
0
投票

drawableState 不是你要找的,我想你可以在你拥有的 ImageButtons 上使用一个名为 getBackground.getConstantState 的方法,然后比较它们是否相同:

这是一个代码,也许会对您有所帮助:

public boolean areBackgroundImagesTheSame(ImageButton button1, ImageButton button2) {
    Drawable drawable1 = button1.getBackground();
    Drawable drawable2 = button2.getBackground();

    if (drawable1 == null && drawable2 == null) {
        // both ImageButtons have no background image
        return true;
    } else if (drawable1 == null || drawable2 == null) {
        // only one ImageButton has a background image
        return false;
    } else {
        // both ImageButtons have a background image, compare them
        return drawable1.getConstantState().equals(drawable2.getConstantState());
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.