[英]How to set a bitmap from resource
這看起來很簡單,我正在嘗試設置位圖圖像,但是從資源中,我在 drawable 文件夾中的應用程序中。
bm = BitmapFactory.decodeResource(null, R.id.image);
這是正確的嗎?
假設您在 Activity 類中調用它
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
第一個參數 Resources 是必需的。 它通常可以在任何 Context(以及像 Activity 這樣的子類)中獲得。
試試這個
這是來自sdcard
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);
如果資源正在顯示並且是一個視圖,您也可以捕獲它。 就像截圖一樣:
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
);
現在你可以使用這個位圖對象,無論你是想存儲它,還是在谷歌地圖中使用它,同時在固定的經緯度上繪制圖片,或者在其他地方使用
只需更換這一行
bm = BitmapFactory.decodeResource(null, R.id.image);
與
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);
我的意思是說只需使用 getResources() 更改空值如果您在任何按鈕或圖像視圖單擊事件中使用此代碼,只需在 getResources() 之前附加 getApplicationContext()。
使用此功能您可以獲得圖像位圖。 只需傳遞圖片網址
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.