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

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();
                }
于 2015-12-30T17:41:20.800 に答える
1

Kotlin 拡張ソリューション:

これを追加して、チェックを簡素化し、読みやすくします

fun ImageView.hasDrawable() = drawable != null

そして電話する

myView.hasDrawable()
于 2020-04-22T20:51:02.650 に答える
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 に答える