我有代码来显示像这样的摄像机设备拍摄的图像
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String file_name = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss").format(new Date());
File file = new File(Environment.getExternalStorageDirectory(),
"tmp_avatar_" + file_name + ".jpg");
mImageCaptureUri = Uri.fromFile(file);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
try {
intent.putExtra("return-data", true);
intent.putExtra("mImageCaptureUri", mImageCaptureUri);
startActivityForResult(intent, PICK_FROM_CAMERA);
} catch (Exception e) {
e.printStackTrace();
}
从路径设置图像位图,当我从纵向视图相机设备捕获图像时,它会工作,但当我从横向视图相机捕获图像时,它会出错,我认为这是因为我检索图像的活动是纵向的。所以,你能给我一些建议,以便我能从人像或风景照相机中捕捉图像吗??谢谢
我在我的一个应用程序中遇到了类似的问题,我用以下方法修复了它:首先保存您的实例状态:
@Override
protected void onSaveInstanceState(Bundle state) {
super.onSaveInstanceState(state);
state.putString(IMAGE_FILE_PATH, imageFilePath); }
然后将其还原:
@Override
protected void onRestoreInstanceState(Bundle state) {
super.onRestoreInstanceState(state);
ImageFilePath = state.getString(IMAGE_FILE_PATH); }
这对我有用,但是变量ImageFilePath应该是全局的,所以也许有更优雅的方法来实现这一点
试试这个
一开始的意图
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
然后是结果的活动
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
if(data!=null && resultCode == RESULT_OK)
{
bitMapForProfilePic = (Bitmap) data.getExtras().get("data");
bitMapForProfilePic =Bitmap.createScaledBitmap(bitMapForProfilePic, getWindowManager().getDefaultDisplay().getWidth()/5, getWindowManager().getDefaultDisplay().getHeight()/4, true);
registration_profilePicID.setImageBitmap(bitMapForProfilePic); bitMapForProfilePic=null;
}
}
}
如果你想存储位图
extStorageDirectory = Environment.getExternalStorageDirectory().toString();
OutputStream outStream = null;
File file = new File(extStorageDirectory, "profilepicture.PNG");
try {
outStream = new FileOutputStream(file);
bitMapForProfilePic.compress(Bitmap.CompressFormat.PNG, 100, outStream);
outStream.flush();
outStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然后设置图像
view.setImageBitmap(BitmapFactory.decodeFile("/sdcard/profilepicture.PNG"));
如果你有任何疑问,请告诉我。。。
本文向大家介绍Android开发从相机或相册获取图片裁剪,包括了Android开发从相机或相册获取图片裁剪的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了。 以上代码很简单,相信大家都可以看的懂吧,欲了解更多信息请持续关注本站,谢谢。
有没有一种方法可以检测照片是否是在人像模式下拍摄的,然后解码位图,并将其按正确的方式向上翻转?
我需要找到一种方法,在不将图片保存到图库的情况下,将图片从相机捕获到位图中。我看到的所有使用“MediaStore.ACTION\u IMAGE\u CAPTURE”的方法都是在传递位图之前将捕获的图片保存到库中。
本文向大家介绍android利用消息机制获取网络图片,包括了android利用消息机制获取网络图片的使用技巧和注意事项,需要的朋友参考一下 在前面都写到用AsyncTask来获取网络中的图片。其实利用消息机制也能获取网络中的图片,而且本人感觉用消息机制还是挺简单的。 消息机制的图解: 下面就用看代码来理解上面的图片。 布局:activity_main.xml MainActivity.jav
本文向大家介绍Android拍照和获取相册图片,包括了Android拍照和获取相册图片的使用技巧和注意事项,需要的朋友参考一下 之前遇到各种拍照啊,获取相册图片之类,都是直接去度娘,要么之前的代码复制下,没好好总结过。 再也不要问度娘了,再也不用一堆博客里找啊找了。。。 ----------------------------------------------我是正文的分割线--------
我正在尝试使用cordova相机插件从画廊获取图像,这是我的方式: 但是在我的“成功”函数中,我得到格式为: 我想要具有图像完整路径的URI,就像我使用相机时得到它一样: 阅读官方文档,我看到我唯一应该做的就是将属性“DestinationType”设置为“FILE_URI”,正如您在上面所看到的。 我做错了什么?