我使用com.nostra13.universalimageloader加载图片。在ViewPager中的标准ImageAdapter内部,有一个共享按钮来共享位图。代码如下:
@Override
public Object instantiateItem(ViewGroup view, int position)
{
....
@Override
public void onLoadingComplete(String imageUri, View view, final Bitmap loadedImage)
{
spinner.setVisibility(View.GONE);
btn_share = (ImageButton) imageLayout.findViewById(R.id.btn_share);
btn_share.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String file_path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Shining Card";
File dir = new File(file_path);
if (!dir.exists()) dir.mkdirs();
File file = new File(dir, "to share");
FileOutputStream fOut;
try
{
fOut = new FileOutputStream(file);
loadedImage.compress(Bitmap.CompressFormat.PNG, 85, fOut);
fOut.flush();
fOut.close();
}
catch (Exception e)
{
e.printStackTrace();
Constants.custom_toast(getActivity(), "Error when sharing", "");
}
Uri uri = Uri.fromFile(file);
Intent intent = new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("image/*");
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "");
intent.putExtra(android.content.Intent.EXTRA_TEXT, "");
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Share Cover Image"));
}
});
}
问题在于分享图像。
通过whatsapp共享第一张图像,可以将图像成功共享给其他人。继续共享第二个图像它也成功地工作。
但是,如果在whatsapp中取消第一个图像的共享并返回到应用程序,然后选择另一个图像在whatsapp中共享,whatsapp中的预览将保留为第一个图像,但如果忽略它并继续分享whatsapp将实际分享新形象。 (即有预览问题)(使用其他应用程序共享图像执行相同,whatsapp预览不会出错)
通过gmail将图像作为附件共享,无法预览或打开图像。