这似乎很简单,我试图设置一个位图图像,但从资源,我在应用程序内的可绘制文件夹。
bm = BitmapFactory.decodeResource(null, R.id.image);
这对吗?
这似乎很简单,我试图设置一个位图图像,但从资源,我在应用程序内的可绘制文件夹。
bm = BitmapFactory.decodeResource(null, R.id.image);
这对吗?
当前回答
使用这个函数你可以得到图像位图。直接传递image 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;
}
}
其他回答
使用这个函数你可以得到图像位图。直接传递image 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;
}
}
如果你声明了一个位图对象,你想要显示它或存储这个位图对象。但首先你必须分配任何图像,你可以使用按钮点击事件,这段代码将只演示如何存储可绘制的图像在位图对象。
Bitmap contact_pic = BitmapFactory.decodeResource(
v.getContext().getResources(),
R.drawable.android_logo
);
现在您可以使用这个位图对象,无论您是想存储它,还是在谷歌地图中使用它,同时在固定的纬度和经度上绘制图片,或者在其他地方使用它
试试这个
这是来自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);
把这条线替换掉
bm = BitmapFactory.decodeResource(null, R.id.image);
with
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);
如果你在任何按钮或图像视图单击事件中使用此代码,只需在getResources()之前追加getApplicationContext() ..
如果资源正在显示并且是一个视图,您也可以捕获它。截图如下:
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);
这实际上抓住了整个布局,但你可以改变你想要的。