不应该直接将图标作为字符串进行比较,应该使用相应的比较函数。例如,在Android中,可以使用以下方法比较两个图标是否相等:
public static boolean areDrawablesIdentical(Drawable drawable1, Drawable drawable2) {
if (drawable1 == drawable2) {
return true;
}
if (drawable1 == null || drawable2 == null) {
return false;
}
if (drawable1.getIntrinsicWidth() != drawable2.getIntrinsicWidth()) {
return false;
}
if (drawable1.getIntrinsicHeight() != drawable2.getIntrinsicHeight()) {
return false;
}
Bitmap bitmap1 = getBitmap(drawable1);
Bitmap bitmap2 = getBitmap(drawable2);
return bitmap1.sameAs(bitmap2);
}
public static Bitmap getBitmap(Drawable drawable) {
Bitmap bitmap;
if (drawable instanceof BitmapDrawable) {
bitmap = ((BitmapDrawable) drawable).getBitmap();
} else {
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
}
return bitmap;
}
这个示例代码可以比较两个Drawable对象是否相等,而不是将它们作为字符串进行比较。
下一篇:比较图表(折线图)