2012-12-27 31 views
1

我需要快速安全地檢查一個android.widget.ImageView目前是否有一個附加的非零值的位圖。什麼是一個快速的方法來做到這一點。什麼是快速檢查ImageView是否分配了位圖的方法?

更新我的圖像視圖設置最初可繪製設置爲「logo.png」,所以如果我知道它當前設置爲logo.png比我知道位圖尚未設置。所以,我怎麼能檢查是否背景繪製目前logo.png

感謝

+0

可能是這可以幫助 http://stackoverflow.com/questions/9113895/how-to-check-if-an-imageview-is-attcahed-with-image-in-android –

+0

我不能接受你的評論,只有實際的答案。 – NextDroid

回答

0

Get Bitmap attached to ImageView

檢查了這一點。

它看起來像你必須從ImageView創建一個位圖,並檢查它是否是null

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

好的。如何快速檢查我的圖像是否仍有src =「logo.jpg」或稍後設置的位圖。我需要非常快地做到這一點。有沒有辦法檢查當前的背景圖片是否是logo.jpg? – NextDroid

+0

我也在尋找答案..我有相同的場景 –

6

使用getDrawable()方法,如果返回null,則沒有分配

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

    //Image Assigned 

}else{ 
    //nothing assigned 

} 
+0

在queston中,他提到imageview已經附帶了默認的「logo.png」。如果你使用你的方法。它不會返回null。因爲「logo.png」已經存在了! –

+0

我在這裏有另一種情況,我有一個背景顏色集。同樣,即使沒有設置src,getDrawable也不會返回null。 –

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(); 
       } 
相關問題