这看起来很简单,我试图设置一个位图图像但是从资源中,我在drawable文件夹中的应用程序中 .
bm = BitmapFactory.decodeResource(null, R.id.image);
它是否正确?
假设您在Activity类中调用它
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.image);
第一个参数是Resources,是必需的 . 它通常可以在任何Context(和Activity之类的子类)中获得 .
试试这个
这是来自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);
如果资源正在显示并且是视图,您也可以捕获它 . 像截图:
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);
这实际上 grab 了整个布局,但你可以随意改变 .
如果已声明位图对象,并且要显示它或存储此位图对象 . 但首先你必须分配任何图像,并且你可以使用按钮点击事件,这段代码只会演示如何将可绘制图像存储在位图对象中 .
Bitmap contact_pic = BitmapFactory.decodeResource(v.getContext().getResources(), R.drawable.android_logo);
现在您可以使用此位图对象,无论您是要存储它,还是在固定纬度和经度上绘制图片时在谷歌 Map 中使用它,或者在其他地方使用
只需更换此行
同
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YourImageName);
我的意思是说只需用getResources()更改null值如果在任何按钮或图像视图中使用此代码,则单击事件只需在getResources()之前附加getApplicationContext() .
当我想在我的View中设置位图时,我发现了这个问题 . 出于这个原因,我发现这个代码更有帮助:
myImgView.setImageDrawable(getResources().getDrawable(R.drawable.monkey));
来自here
6 回答
假设您在Activity类中调用它
第一个参数是Resources,是必需的 . 它通常可以在任何Context(和Activity之类的子类)中获得 .
试试这个
这是来自SD卡
这来自资源
如果资源正在显示并且是视图,您也可以捕获它 . 像截图:
这实际上 grab 了整个布局,但你可以随意改变 .
如果已声明位图对象,并且要显示它或存储此位图对象 . 但首先你必须分配任何图像,并且你可以使用按钮点击事件,这段代码只会演示如何将可绘制图像存储在位图对象中 .
现在您可以使用此位图对象,无论您是要存储它,还是在固定纬度和经度上绘制图片时在谷歌 Map 中使用它,或者在其他地方使用
只需更换此行
同
我的意思是说只需用getResources()更改null值如果在任何按钮或图像视图中使用此代码,则单击事件只需在getResources()之前附加getApplicationContext() .
当我想在我的View中设置位图时,我发现了这个问题 . 出于这个原因,我发现这个代码更有帮助:
来自here