画像ボタンに表示するDrawableオブジェクトを取得する必要があります。 Android.R.drawable。*パッケージからオブジェクトを取得するために、以下のコード(またはそれに似たもの)を使用する方法はありますか?
たとえば、drawableIdがAndroid.R.drawable.ic_deleteの場合
mContext.getResources().getDrawable(drawableId)
Drawable d = getResources().getDrawable(Android.R.drawable.ic_dialog_email);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(d);
API 21の時点で、特定のresource ID
の特定のscreen density/theme
に関連付けられたdrawable
オブジェクトをフェッチできるため、getDrawable(int, Theme)
の代わりにgetDrawable(int)
メソッドを使用する必要があります。 deprecated
getDrawable(int)
メソッドの呼び出しは、getDrawable(int, null)
の呼び出しと同等です。
代わりに、サポートライブラリの次のコードを使用する必要があります。
ContextCompat.getDrawable(context, Android.R.drawable.ic_dialog_email)
このメソッドを使用することは、次の呼び出しと同等です。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Lollipop) {
return resources.getDrawable(id, context.getTheme());
} else {
return resources.getDrawable(id);
}
API 21の時点では、次のものも使用できます。
ResourcesCompat.getDrawable(getResources(), R.drawable.name, null);
ContextCompat.getDrawable(context, Android.R.drawable.ic_dialog_email)
の代わりに
最善の方法は
button.setBackgroundResource(Android.R.drawable.ic_delete);
または Drawableの左の場合はこれ、右の場合はそのようなもの。
int imgResource = R.drawable.left_img;
button.setCompoundDrawablesWithIntrinsicBounds(imgResource, 0, 0, 0);
そして
getResources().getDrawable()
は非推奨になりました