检查ImageView是否分配了位图的快速方法是什么?

时间:2012-12-27 03:23:50

标签: android

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

更新我的图片视图最初设置为drawable设置为“logo.png”,所以如果我知道它当前设置为logo.png,我知道该位图尚未设置。那么如何检查background drawable目前是否为logo.png

由于

4 个答案:

答案 0 :(得分:7)

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

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

  //Image Assigned

}else{
  //nothing assigned

}

答案 1 :(得分:1)

ImageView分配给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();
                }

答案 2 :(得分:0)

Get Bitmap attached to ImageView

检查一下。

看起来您必须从ImageView创建一个位图,然后检查它是否为null

imageView.setDrawingCacheEnabled(true);    
imageView.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
imageView.setDrawingCacheEnabled(false);

答案 3 :(得分:0)

Kotlin扩展解决方案:

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

fun ImageView.hasDrawable() = drawable != null

然后致电

myView.hasDrawable()