回答:
あなたがActivityクラスでこれを呼び出していると仮定します
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
最初のパラメーターであるResourcesは必須です。通常は、どのコンテキスト(およびActivityのようなサブクラス)でも取得できます。
リソースが表示されていてビューの場合は、それをキャプチャすることもできます。スクリーンショットのように:
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);
これは実際にはレイアウト全体を取得しますが、必要に応じて変更できます。
ビットマップオブジェクトを宣言し、それを表示するか、このビットマップオブジェクトを保存する場合。ただし、最初に画像を割り当てる必要があり、ボタンクリックイベントを使用できます。このコードは、描画可能な画像をビットマップオブジェクトに格納する方法を示すだけです。
Bitmap contact_pic = BitmapFactory.decodeResource(
v.getContext().getResources(),
R.drawable.android_logo
);
これで、このビットマップオブジェクトを保存するか、固定の緯度と経度で画像を描画しながらGoogleマップで使用するか、他の場所で使用することができます。
この関数を使用して、イメージビットマップを取得できます。画像のURLを渡すだけ
public Bitmap getBitmapFromURL(String strURL) {
try {
URL url = new URL(strURL);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap myBitmap = BitmapFactory.decodeStream(input);
return myBitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}