Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.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
Android 将数据从输入流复制到文件输出流 使用生成的文件 试试这个 您必须从代码中删除这一行,只需添加此startActivityForResult(intent,1) 我认为你传递了错误的意图,它倾向于不打开galleryit openDocumentProvider_Android - Fatal编程技术网

Android 将数据从输入流复制到文件输出流 使用生成的文件 试试这个 您必须从代码中删除这一行,只需添加此startActivityForResult(intent,1) 我认为你传递了错误的意图,它倾向于不打开galleryit openDocumentProvider

Android 将数据从输入流复制到文件输出流 使用生成的文件 试试这个 您必须从代码中删除这一行,只需添加此startActivityForResult(intent,1) 我认为你传递了错误的意图,它倾向于不打开galleryit openDocumentProvider,android,Android,将其放入您的OnActivityResult @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { if (requestCode == 1 && resultCode == RES

将其放入您的
OnActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
     if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) {
        try {
            uri = null;
            uri = data.getData();
            Bitmap bmp = null;
            file_galleryimagepath = null;
            bmp = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);

            File f = new File(getActivity().getCacheDir(), System.currentTimeMillis() + ".jpg");
            if (f.exists())
                f.delete();
            f.createNewFile();
            Bitmap bitmap = bmp;
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
            byte[] bitmapdata = bos.toByteArray();
            FileOutputStream fos = new FileOutputStream(f);
            fos.write(bitmapdata);
            fos.flush();
            fos.close();
            file_galleryimagepath = f;
            Bitmap map = BitmapFactory.decodeFile(file_galleryimagepath.toString());
            iv_userImage.setImageBitmap(map);

        }catch (Exception e){
            Log.e("204","HFP>>>"+e+"<<catch");
        }
    }
  }
}
@覆盖
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
if(resultCode==RESULT\u OK){
if(requestCode==1&&resultCode==RESULT\u OK&&data!=null&&data.getData()!=null){
试一试{
uri=null;
uri=data.getData();
位图bmp=null;
文件\u galleryimagepath=null;
bmp=MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(),uri);
文件f=新文件(getActivity().getCacheDir(),System.currentTimeMillis()+“.jpg”);
如果(f.exists())
f、 删除();
f、 createNewFile();
位图=bmp;
ByteArrayOutputStream bos=新建ByteArrayOutputStream();
compress(bitmap.CompressFormat.PNG,0/*对于PNG*/,bos被忽略);
字节[]位图数据=bos.toByteArray();
FileOutputStream fos=新的FileOutputStream(f);
fos.写入(位图数据);
fos.flush();
fos.close();
文件\u galleryimagepath=f;
位图映射=BitmapFactory.decodeFile(file_galleryimagepath.toString());
iv_userImage.setImageBitmap(map);
}捕获(例外e){

Log.e(“204”,“HFP>>>”+e+“错误是什么?请查看。您可以共享错误日志吗?请同时检查权限或.getString()方法为null表示我获取的picturepath为null是的,我已在运行时检查了权限alsoso,我们如何根据版本设置不同的格式?目前,对于7.1以上的设备,我获取的piicturepath为null,我未获取任何picturepath本身。是否比较了所选路径?是否发现任何差异它们之间有什么区别?是的,我知道了。对于少数设备,路径以file:///开头,对于少数设备,路径以file开头content:///. 路径以文件开始的设备:///正在崩溃。此链接可能对您有用:我已经在清单中定义了自定义提供程序,请提供
@xml/provider\u路径
也可以,也可以提供
图像名称
?因为我无法复制图像名称?我没有得到您要求的内容。您能告诉我您想要哪个图像名称吗
 case REQUEST_CODE_GALLERY:
                if (data == null) {
                    return;
                }
                Uri selectedImage = data.getData();
                String[] filePathColumn = {MediaStore.Images.Media.DATA};
                Cursor cursor = getContentResolver().query(selectedImage,
                        filePathColumn, null, null, null);
                cursor.moveToFirst();
                int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                String picturePath = cursor.getString(columnIndex);
                cursor.close();

                File file = new File(picturePath);
                mFileUri = FileProvider.getUriForFile(this, this.getApplicationContext().getPackageName() + ".provider", file);
                performCrop();
                break;
Uri.fromFile(file);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
     if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) {
        try {
            uri = null;
            uri = data.getData();
            Bitmap bmp = null;
            file_galleryimagepath = null;
            bmp = MediaStore.Images.Media.getBitmap(getActivity().getContentResolver(), uri);

            File f = new File(getActivity().getCacheDir(), System.currentTimeMillis() + ".jpg");
            if (f.exists())
                f.delete();
            f.createNewFile();
            Bitmap bitmap = bmp;
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.PNG, 0 /*ignored for PNG*/, bos);
            byte[] bitmapdata = bos.toByteArray();
            FileOutputStream fos = new FileOutputStream(f);
            fos.write(bitmapdata);
            fos.flush();
            fos.close();
            file_galleryimagepath = f;
            Bitmap map = BitmapFactory.decodeFile(file_galleryimagepath.toString());
            iv_userImage.setImageBitmap(map);

        }catch (Exception e){
            Log.e("204","HFP>>>"+e+"<<catch");
        }
    }
  }
}