Java Android-Android中的屏幕旋转和位图错误
我的应用程序为我的网站拍照,图像可以与whatsapp和其他社交网络共享,创建文件夹并保存图像,它工作正常,但当旋转屏幕并单击共享时,我看到此位图为空。 有人有解决办法吗?按照我的代码: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
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并复制直接映像。如果您能帮助我,我还有另一个问题,我将不胜感激[链接]