web-dev-qa-db-ja.com

リソースからビットマップを設定する方法

これは簡単に思えますが、私はビットマップイメージを設定しようとしていますが、リソースから、アプリケーション内のdrawableフォルダにあります。

bm = BitmapFactory.decodeResource(null, R.id.image);

これは正しいです?

266
Beginner

これをActivityクラスで呼び出しているとします。

Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);

最初のパラメータResourcesは必須です。通常はどのContext(およびActivityのようなサブクラス)でも取得できます。

715
xandy

これを試して

これはSDカードからです

ImageView image = (ImageView) findViewById(R.id.test_image);
Bitmap bMap = BitmapFactory.decodeFile("/sdcard/test2.png");
image.setImageBitmap(bMap);

これはリソースからです

Bitmap bMap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
30
Parag Chauhan

リソースが表示されていてビューである場合は、それを取り込むこともできます。スクリーンショットのように:

View rootView = ((View) findViewById(R.id.yourView)).getRootView();
rootView.setDrawingCacheEnabled(true);
rootView.layout(0, 0, rootView.getWidth(), rootView.getHeight());
rootView.buildDrawingCache();

Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());

rootView.setDrawingCacheEnabled(false);

これは実際には全体のレイアウトをつかみますが、あなたは望むように変更することができます。

7
trgraglia

ビットマップオブジェクトを宣言していて、それを表示したい場合、またはこのビットマップオブジェクトを保存したい場合。ただし、最初に任意の画像を割り当てる必要があります。ボタンクリックイベントを使用することもできます。このコードでは、描画可能画像をビットマップオブジェクトに格納する方法についてのみ説明します。

Bitmap contact_pic = BitmapFactory.decodeResource(v.getContext().getResources(), R.drawable.Android_logo);

これで、このビットマップオブジェクトを使用することができます。保存するか、固定された緯度と経度で写真を描画しながらGoogleマップで使用するか、または他の場所で使用します。

1
Pir Fahim Shah

私は自分のビューにビットマップを設定したいときに私はこの質問を見つけました。そのため、このコードの方が便利だと思いました。

myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));

から こちら

0

この行を置き換える

bm = BitmapFactory.decodeResource(null, R.id.image);

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);

私は、単にgetResources()でnull値を変更するということを意味します。もしあなたがこのコードをボタンまたはImage view clickイベントで使用する場合は、getResources()の前にgetApplicationContext()を追加するだけです。

0
Ravi Makvana