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

 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。因此,尝试保存并从捆绑包中检索它。

在课堂上声明Uri p。

在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());
}

07-28 02:59
查看更多