4

我需要快速安全地检查 android.widget.ImageView 当前是否附加了一个非零值的位图。什么是快速的方法来做到这一点。

更新我的图像视图最初设置为可绘制设置为“logo.png”,所以如果我知道它当前设置为 logo.png,那么我知道位图尚未设置。那么如何检查背景可绘制对象当前是否为 logo.png

谢谢

4

4 回答 4

12

使用 getDrawable() 方法,如果它返回 null 则没有分配

if( mImageView.getDrawable() != null){

  //Image Assigned

}else{
  //nothing assigned

}
于 2012-12-27T05:18:05.200 回答
1

Kotlin 扩展解决方案:

添加此项以简化检查并使其更具可读性

fun ImageView.hasDrawable() = drawable != null

然后打电话

myView.hasDrawable()
于 2020-04-22T20:51:02.650 回答
1

分配ImageView给变量 in onCreate

someImage = (ImageView) findViewById(R.id.imageView);

然后是一个简单的 if-else 语句:

Bitmap bm = ((BitmapDrawable) someImage.getDrawable()).getBitmap();

                boolean hasDrawable = (bm != null);
                if(hasDrawable) 
                {
                    hasImage();
                }
                else 
                {
                    Toast.makeText(AppSettings.this, "No Bitmap", Toast.LENGTH_SHORT).show();
                }
于 2015-12-30T17:41:20.800 回答
0

获取附加到 ImageView 的位图

看一下这个。

看起来你必须从创建一个位图ImageView并检查它是否是null.

imageView.setDrawingCacheEnabled(true);    
imageView.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
imageView.setDrawingCacheEnabled(false);
于 2012-12-27T04:14:04.730 回答