android.widget.ImageView に現在ゼロ以外の値のビットマップが添付されているかどうかを迅速かつ安全に確認する必要があります。これを行う簡単な方法は何ですか。
画像ビューを更新すると、最初は描画可能に設定されて「logo.png」に設定されるため、現在 logo.png に設定されていることがわかっている場合は、ビットマップがまだ設定されていないことがわかります。バックグラウンドドローアブルが現在logo.pngかどうかを確認するにはどうすればよいですか
ありがとう
android.widget.ImageView に現在ゼロ以外の値のビットマップが添付されているかどうかを迅速かつ安全に確認する必要があります。これを行う簡単な方法は何ですか。
画像ビューを更新すると、最初は描画可能に設定されて「logo.png」に設定されるため、現在 logo.png に設定されていることがわかっている場合は、ビットマップがまだ設定されていないことがわかります。バックグラウンドドローアブルが現在logo.pngかどうかを確認するにはどうすればよいですか
ありがとう
getDrawable()メソッドを使用します。nullが返された場合は何も割り当てられません
if( mImageView.getDrawable() != null){
//Image Assigned
}else{
//nothing assigned
}
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();
}
Kotlin 拡張ソリューション:
これを追加して、チェックを簡素化し、読みやすくします
fun ImageView.hasDrawable() = drawable != null
そして電話する
myView.hasDrawable()
これをチェックしてください。
からビットマップを作成し、ImageView
それがであるかどうかを確認する必要があるようですnull
。
imageView.setDrawingCacheEnabled(true);
imageView.buildDrawingCache(true);
Bitmap bitmap = Bitmap.createBitmap(imageView.getDrawingCache());
imageView.setDrawingCacheEnabled(false);