Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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 Android-Android中的屏幕旋转和位图错误_Java_Android_Bitmap_Android Bitmap_Bitmapimage - Fatal编程技术网

Java Android-Android中的屏幕旋转和位图错误

Java Android-Android中的屏幕旋转和位图错误,java,android,bitmap,android-bitmap,bitmapimage,Java,Android,Bitmap,Android Bitmap,Bitmapimage,我的应用程序为我的网站拍照,图像可以与whatsapp和其他社交网络共享,创建文件夹并保存图像,它工作正常,但当旋转屏幕并单击共享时,我看到此位图为空。 有人有解决办法吗?按照我的代码: public void onClick(View v) { if( mRecyclerViewOnClickListenerHack == null ) { OutputStream fOut = null; ImageView imgflag

我的应用程序为我的网站拍照,图像可以与whatsapp和其他社交网络共享,创建文件夹并保存图像,它工作正常,但当旋转屏幕并单击共享时,我看到此位图为空。 有人有解决办法吗?按照我的代码:

 public void onClick(View v) {
        if( mRecyclerViewOnClickListenerHack == null ) {
            OutputStream fOut = null;
            ImageView imgflag = (SimpleDraweeView) itemView.findViewById(R.id.iv_image);
            imgflag.setDrawingCacheEnabled(true);
            imgflag.buildDrawingCache();
            Bitmap bm=imgflag.getDrawingCache();

            File root = new File(Environment.getExternalStorageDirectory()
                    + File.separator + "ImageTop" + File.separator);
            root.mkdirs();
            File sdImageMainDirectory = new File(root, mList.get(getAdapterPosition()).getFoto());
            Uri imageUri = Uri.fromFile(sdImageMainDirectory);

            try {
            fOut = new FileOutputStream(sdImageMainDirectory);
                if (bm == null){
                Log.d(TAG, "Bitmap is null.");
                }else{
                bm.compress(Bitmap.CompressFormat.JPEG, 80, fOut);
                Log.d(TAG, "Bitmap is ok.");
                }

            Intent sendIntent = new Intent();
            sendIntent.setAction(Intent.ACTION_SEND);
            sendIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
            sendIntent.setType("image/jpg");
                mContext.startActivity(Intent.createChooser(sendIntent, "Share"));

                fOut.flush();
                fOut.close();
            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(mContext, "Error.", Toast.LENGTH_SHORT).show();
            }

        }else{
            mRecyclerViewOnClickListenerHack.onClickListener(v, getAdapterPosition());
        }
    }
已在清单中添加configChange,但没有解决方案。 我是android和java的初学者。
感谢所有能帮助我的人。

onCreate方法在方向改变时再次执行。因此,当方向改变时,可能无法获取图像uri。所以试着从bundle中保存和检索它

在类中声明urip

将此添加到onCreate中

p  =  yourImageUri;   // you image uri

if(savedInstanceState!=null) {
p= Uri.parse(savedInstanceState.getString("imageUri"));
}
并在类中添加此方法

@Override
protected void onSaveInstanceState(Bundle outState) 
{
outState.putExtra("imageUri", p.toString()); 
}

当方向改变时,onCreate方法再次执行。因此,当方向改变时,可能无法获取图像uri。所以试着从bundle中保存和检索它

在类中声明urip

将此添加到onCreate中

p  =  yourImageUri;   // you image uri

if(savedInstanceState!=null) {
p= Uri.parse(savedInstanceState.getString("imageUri"));
}
并在类中添加此方法

@Override
protected void onSaveInstanceState(Bundle outState) 
{
outState.putExtra("imageUri", p.toString()); 
}

感谢您的帮助,但仍然不起作用,我找到了另一个解决方案,我正在使用AsyncTask并复制直接映像。我还有一个问题,如果您能帮助我,我将非常感谢[link]感谢您的帮助,但仍然不起作用,我找到了另一个解决方案,我正在使用AsyncTask并复制直接映像。如果您能帮助我,我还有另一个问题,我将不胜感激[链接]