我的应用程序为我的网站拍照,可以与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());
}