Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 两次选择图片时,应用程序崩溃+;旋转图片_Java_Android_Android Bitmap - Fatal编程技术网

Java 两次选择图片时,应用程序崩溃+;旋转图片

Java 两次选择图片时,应用程序崩溃+;旋转图片,java,android,android-bitmap,Java,Android,Android Bitmap,在我的应用程序中,有一个“上传图片”按钮:从相机拍摄照片或从多媒体资料中选择 在这两个选项上,都存在两个问题: 再次单击以上载另一张图片时,应用程序崩溃 在第一次“上传”时,图片从侧面旋转(逆时针旋转90度) 导入android.app.Activity; 导入android.app.AlertDialog; 导入android.content.DialogInterface; 导入android.content.Intent; 导入android.database.Cursor; 导入and

在我的应用程序中,有一个“上传图片”按钮:从相机拍摄照片或从多媒体资料中选择

在这两个选项上,都存在两个问题:

  • 再次单击以上载另一张图片时,应用程序崩溃

  • 在第一次“上传”时,图片从侧面旋转(逆时针旋转90度)

  • 导入android.app.Activity;
    导入android.app.AlertDialog;
    导入android.content.DialogInterface;
    导入android.content.Intent;
    导入android.database.Cursor;
    导入android.graphics.Bitmap;
    导入android.graphics.BitmapFactory;
    导入android.net.Uri;
    导入android.os.Bundle;
    导入android.app.Fragment;
    导入android.os.Environment;
    导入android.provider.MediaStore;
    导入android.util.Log;
    导入android.view.LayoutInflater;
    导入android.view.view;
    导入android.view.ViewGroup;
    导入android.widget.Button;
    导入android.widget.EditText;
    导入android.widget.ImageView;
    导入android.widget.Toast;
    导入java.io.File;
    导入java.io.FileNotFoundException;
    导入java.io.FileOutputStream;
    导入java.io.OutputStream;
    进口实体。订单;
    公共类SellABookFragment扩展片段实现View.OnClickListener{
    私有图像查看ivBookPicture;
    私人编辑文本etBookName、etBookAuthor、etBookGenre、etBookPublishing、etQuantity、etBookPrice、etBookDetails;
    私人按钮bUploadPicture,bAddBook;
    公开发售{
    //必需的空公共构造函数
    }
    @凌驾
    创建视图上的公共视图(布局、充气机、视图组容器、,
    Bundle savedInstanceState){
    //为该碎片膨胀布局
    视图=充气机。充气(R.layout.fragment\u sell\u a\u book,container,false);
    ivBookPicture=(ImageView)view.findViewById(R.id.ivBook\u Picture);
    etBookName=(EditText)view.findViewById(R.id.etBook\u Name);
    etBookAuthor=(EditText)view.findViewById(R.id.etAuthor_Name);
    etbookgreen=(EditText)view.findViewById(R.id.etgreen);
    etBookPublishing=(EditText)view.findViewById(R.id.etPublishing\u年);
    etQuantity=(EditText)view.findViewById(R.id.etBook\u Quantity);
    etBookPrice=(EditText)view.findViewById(R.id.etBook\u Price);
    etBookDetails=(EditText)view.findViewById(R.id.etBook\u Details);
    bUploadPicture=(按钮)view.findViewById(R.id.bUpload\u图片);
    bAddBook=(按钮)view.findViewById(R.id.bAdd_Book);
    bUploadPicture.setOnClickListener(this);
    setOnClickListener(这个);
    返回视图;
    }
    @凌驾
    公共void onClick(视图v){
    开关(v.getId()){
    案例R.id.bUpload_图片:
    选择图片();
    打破
    案例R.id.bAdd_书:
    addBook();
    打破
    }
    }
    私有无效addBook(){
    试一试{
    HomeActivity.backEnd.addOrder(新订单(HomeActivity.LoggedUser.getID(),
    etbookgreen.getText().toString(),
    etBookName.getText().toString(),
    Integer.parseInt(etBookPublishing.getText().toString()),
    etBookAuthor.getText().toString(),
    Double.parseDouble(etBookPrice.getText().toString()),
    (整数)ivBookPicture.getTag());
    }捕获(例外e){
    Toast.makeText(getActivity().getApplicationContext(),e.getMessage(),Toast.LENGTH_LONG).show();
    }
    }
    私有void selectPicture(){
    最终字符序列[]选项={
    getResources().getString(R.string.take_photo),
    getResources().getString(R.string.gallery_choose),
    getResources().getString(R.string.cancel)};
    AlertDialog.Builder=新建AlertDialog.Builder(getActivity());
    setTitle(getResources().getString(R.string.upload_picture));
    setItems(选项,新的DialogInterface.OnClickListener(){
    @凌驾
    公共void onClick(对话框接口对话框,int项){
    如果(选项[item].equals(getResources().getString(R.string.take_photo))){
    意向意向=新意向(MediaStore.ACTION\u IMAGE\u CAPTURE);
    文件f=新文件(android.os.Environment.getExternalStorageDirectory(),“tmp.jpg”);
    intent.putExtra(MediaStore.EXTRA_输出,Uri.fromFile(f));
    startActivityForResult(意向,1);
    }else如果(选项[item].equals(getResources().getString(R.string.gallery_choose))){
    意向意向=新意向(意向.行动\u选择,
    MediaStore.Images.Media.EXTERNAL\u CONTENT\u URI);
    startActivityForResult(意向书,2);
    }否则
    dialog.dismise();
    }
    });
    builder.show();
    }
    位图;
    @凌驾
    ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
    super.onActivityResult(请求代码、结果代码、数据);
    输出流输出文件;
    String path=android.os.Environment.getExternalStorageDirectory()
    +文件分隔符
    +“MyApp”;
    文件;
    if(resultCode==Activity.RESULT\u确定){
    if(位图!=null){
    ivBookPicture.setImageBitmap(空);
    bitmap.recycle();
    位图=空;
    }
    试一试{
    if(requestCode==1){
    文件f=新文件(Environment.getExternalStorageDirectory().toString());
    对于(文件tmp:f.listFiles()){
    if(tmp.getName().equals(“tmp.jpg”)){
    f=tmp;
    打破
    }