当前位置: 移动技术网 > IT编程>移动开发>Android > android图像绘制(六)获取本地图片或拍照图片等图片资源

android图像绘制(六)获取本地图片或拍照图片等图片资源

2019年07月24日  | 移动技术网IT编程  | 我要评论

v星入侵第一季,yhzw,美乐乐家居网

从sd卡中获取图片资源,或者拍一张新的图片。
先贴代码
获取图片
注释:拍照获取的话,可以指定图片的保存地址,在此不说明。
复制代码 代码如下:

charsequence[] items = {"相册", "相机"};
new alertdialog.builder(this)
.settitle("选择图片来源")
.setitems(items, new onclicklistener() {
public void onclick(dialoginterface dialog, int which) {
if( which == select_picture ){
intent intent = new intent(intent.action_get_content);
intent.addcategory(intent.category_openable);
intent.settype("image/*");
startactivityforresult(intent.createchooser(intent, "选择图片"), select_picture);
}else{
intent intent = new intent(mediastore.action_image_capture);
startactivityforresult(intent, select_camer);
}
}
})
.create().show();

处理图片,方法一,直接处理返回图片
注释
1、网上有说明,直接处理返回的图片是被系统压缩过的,不过自己在测试的过程并没有区别;
2、如果用户不断的重新获取图片的话,必须把现在的bmp内存释放,否则会报错! bmp.recycle()。
复制代码 代码如下:

protected void onactivityresult(int requestcode, int resultcode, intent data) {
super.onactivityresult(requestcode, resultcode, data);
if(resultcode == result_ok){
//选择图片
uri uri = data.getdata();
contentresolver cr = this.getcontentresolver();
try {
if(bmp != null)//如果不释放的话,不断取图片,将会内存不够
bmp.recycle();
bmp = bitmapfactory.decodestream(cr.openinputstream(uri));
} catch (filenotfoundexception e) {
// todo auto-generated catch block
e.printstacktrace();
}
system.out.println("the bmp tostring: " + bmp);
imagesv.setbmp(bmp);
}else{
toast.maketext(setimageactivity.this, "请重新选择图片", toast.length_short).show();
}
}

处理图片,方法二,获得图片的地址再处理
复制代码 代码如下:

protected void onactivityresult(int requestcode, int resultcode, intent data) {
super.onactivityresult(requestcode, resultcode, data);
if(resultcode == result_ok){
uri uri = data.getdata();
string [] proj={mediastore.images.media.data};
cursor cursor = managedquery( uri,
proj, // which columns to return
null, // where clause; which rows to return (all rows)
null, // where clause selection arguments (none)
null); // order-by clause (ascending by name)
int column_index = cursor.getcolumnindexorthrow(mediastore.images.media.data);
cursor.movetofirst();
string path = cursor.getstring(column_index);
bmp = bitmapfactory.decodefile(path);
system.out.println("the path is :" + path);
}else{
toast.maketext(setimageactivity.this, "请重新选择图片", toast.length_short).show();
}
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网