Android 用户意图将映像路径发送到另一个活动
有时我会在手机上运行应用程序。问题是,当我在相机拿起照片后单击“确定”按钮时,此时此刻!应用程序'停止运行!事实上,我想看另一个活动的图片!是 拍照:Android 用户意图将映像路径发送到另一个活动,android,android-intent,Android,Android Intent,有时我会在手机上运行应用程序。问题是,当我在相机拿起照片后单击“确定”按钮时,此时此刻!应用程序'停止运行!事实上,我想看另一个活动的图片!是 拍照: private void takePhoto() { String SDState = Environment.getExternalStorageState(); if (SDState.equals(Environment.MEDIA_MOUNTED)) { Intent intent = new Inten
private void takePhoto() {
String SDState = Environment.getExternalStorageState();
if (SDState.equals(Environment.MEDIA_MOUNTED)) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
ContentValues values = new ContentValues();
photoUri = getActivity().getContentResolver().insert(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(intent, SELECT_PIC_BY_TACK_PHOTO);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
Toast.makeText(getActivity(), R.string.take_photo_rem,
Toast.LENGTH_LONG).show();
}
} else {
Toast.makeText(getActivity(), R.string.takePhoto_msg,
Toast.LENGTH_LONG).show();
}
}
相册:
private void pickPhoto() {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, SELECT_PIC_BY_PICK_PHOTO);
}
onActivityResult:用户意图发送图像uri
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
doPhoto(requestCode, data);
}
super.onActivityResult(requestCode, resultCode, data);
}
private void doPhoto(int requestCode, Intent data) {
if (requestCode == SELECT_PIC_BY_PICK_PHOTO) {
if (data == null) {
Toast.makeText(getActivity(), R.string.photo_err,
Toast.LENGTH_LONG).show();
return;
}
photoUri = data.getData();
if (photoUri == null) {
Toast.makeText(getActivity(), R.string.photo_err,
Toast.LENGTH_LONG).show();
return;
}
}
String[] pojo = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().managedQuery(photoUri, pojo, null, null,
null);
if (cursor != null) {
int columnIndex = cursor.getColumnIndexOrThrow(pojo[0]);
cursor.moveToFirst();
picPath = cursor.getString(columnIndex);
try {
if (Integer.parseInt(Build.VERSION.SDK) < 14) {
cursor.close();
}
} catch (Exception e) {
Log.e(TAG, "error:" + e);
}
}
Log.i(TAG, "imagePath = " + picPath);
if (picPath != null) {
Intent startEx = new Intent(getActivity(), PhotoPre.class);
Bundle bundle = new Bundle();
bundle.putString(SAVED_IMAGE_DIR_PATH, picPath);
startEx.putExtras(bundle);
startActivity(startEx);
} else {
Toast.makeText(getActivity(), R.string.photo_err, Toast.LENGTH_LONG)
.show();
}
}
1-启动照相机拍摄图像
Intent cameraIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment .getExternalStorageDirectory(), "MyImages");
imagesFolder.mkdirs();
File image = new File(imagesFolder, Const.dbSrNo + "image.jpg");
Uri uriSavedImage = Uri.fromFile(image);
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
2-在“onActivityResult”中编写以下代码
3-生成一个java文件Const.java
public class Const {
public static byte[] imgbyte = "";
}
4-现在使用在活动中显示该图像
byte[] mybits=Const.imgbyte;
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeByteArray(mybits, 0, mybits.length, options);
yourImageview.setImageBitmap(bitmap);
检查您的extras键值变量
SAVED_IMAGE_DIR_PATH
和key_PHOTO_PATH
是否相同,关闭应用程序时出现了什么错误…?请同时发布错误。它很可能是一个空指针。请发布日志,并说明错误发生在哪一行。由于此处没有行,请告诉出现错误的代码Saved_IMAGE_DIR_PATH和KEY_PHOTO_PATH都是不同的参数beteew activity!这段代码完全没有问题吗?我的应用程序的logcat:java.lang.RuntimeException:无法恢复活动{com.example.newpingziyi/com.example.newpingziyi.MainActivity}:java.lang.RuntimeException:无法将结果ResultInfo{who=null,request=131073,result=-1,data=null}传递到活动{com.example.newpingziyi/com.example.newpingziyi.MainActivity}:java.lang.NullPointerException
您是否尝试过上述代码??使用Const.java文件将图像字节传输到其他活动?我不是,那些朋友想查看日志,所以…,现在我启动itConst.dbSrNo!**dbSrNo**bitmap bm BitmapFactory.decodeFile是什么(“在这里你可以写下你的图像路径”)……这是我的图像路径。
public class Const {
public static byte[] imgbyte = "";
}
byte[] mybits=Const.imgbyte;
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap bitmap = BitmapFactory.decodeByteArray(mybits, 0, mybits.length, options);
yourImageview.setImageBitmap(bitmap);