您好我在我的活动中使用这段代码用于相机。
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == TAKE_PICTURE_WITH_CAMERA) {
if (resultCode == Activity.RESULT_OK) {
// To Write the Images in SDCard
File f = new File(imgName);
try {
Uri capturedImage = Uri
.parse(android.provider.MediaStore.Images.Media
.insertImage(getContentResolver(),
f.getAbsolutePath(), null, null));
Log.i("camera",
"Selected image: " + capturedImage.toString());
pic.setImageURI(capturedImage);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
} else {
Log.i("Camera", "Result code was " + resultCode);
}
}
}
我正在尝试将捕获的图像应用到我的ImageView
。第一次,相机拍摄照片并将其设置为ImageView
。但是当我第二次运行它时,我的应用程序无法将新捕获的图像设置为imageView
。从相机意图返回后它崩溃了。我怎么解决这个问题?
任何帮助表示赞赏。
答案 0 :(得分:5)
为了避免这种错误,必须首先缩放位图。我已经尝试了下面的代码,它工作正常。
bm1=Bitmap.createScaledBitmap(bm, 300, 300,true);
pic.setImageBitmap(bm1);
bm.recycle();
bm=null;
答案 1 :(得分:-3)
在阅读关于相机的内容时,我认为它是硬件。硬件总是使用自己的Thread。也许您需要创建一个内存复制图像并由调度程序提供服务。我不知道你的代码,但我有兴趣接受它来帮助你。
http://blog.lieberlieber.com/2009/07/09/controlinvoke-wpf-style-and-special-bitmapsource-handling/
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/f0c5e590-8bfe-4452-a784-4987af9fce89/