|
//这个方法是对SD卡上指定的文件进行裁剪
public void startPhotoZoom(String imagePath) {
//获得裁剪图片的路径文件
File file = new File(imagePath);
//获得裁剪图片的名字
originName = file.getName();
System.out.println(originName);
//获得裁剪图片的uri
Uri uri=Uri.fromFile(file);
//调用intent跳转的裁间页面
Intent intent = new Intent("com.android.camera.action.CROP");
//传入裁剪图片的路径uri和需要裁剪的格式
intent.setDataAndType(uri, ChooseName.IMAGE_UNSPECIFIED);
//可裁剪状态
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 480);
intent.putExtra("aspectY", 320);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 480);
intent.putExtra("outputY", 320);
intent.putExtra("return-data", true);
startActivityForResult(intent, ChooseName.PHOTORESOULT);
}
上面的 originName 是个全局变量, System.out.println(originName);
能输出它的值
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data);
System.out.print("----->0" + originName);
if(requestCode == ChooseName.PHOTORESOULT) {
Bundle extras = data.getExtras();
System.out.print("----->1" + originName);
if(extras != null) {
//获得裁剪图片
System.out.println("----->2" + originName);
String test = extras.getString("test");
System.out.println("----->" + test);
Bitmap photo = extras.getParcelable("data");
File file = new File(ChooseName.FOLDER_PATH + originName);
try {
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
photo.compress(Bitmap.CompressFormat.JPEG, 100, out);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
问题出来了,在onActivityResult函数中originName的值为空。其实我刚开始写好的时候,都不为空,都能运行。后来我改了一下就不行了,改回去还是不行了。我有试了 在第一个方法中 传值 Bundle b=data.getExtras(); //data为B中回传的Intent
5 String str=b.getString("str1"); 结果onActivityResult还是接收的值为空。请大家帮帮忙啊 |
|