gpt4 book ai didi

java - 分享 Intent 需要很长时间才能出现

转载 作者:太空宇宙 更新时间:2023-11-03 13:45:23 24 4
gpt4 key购买 nike

我正在尝试在我的应用程序中包含图像共享,一切正常,但共享选择器需要很长时间才能出现在设备上

这是我正在做的:

我有 ImageView“items_details_image”,我想分享它的图像以便能够通过 whatsapp 和其他应用程序发送它

void ShareImg() {
try {
Uri bmpUri = getLocalBitmapUri(items_details_image);
if (bmpUri != null) {
// Construct a ShareIntent with link to image
Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, bmpUri);
shareIntent.setType("image/*");
// Launch sharing dialog for image
startActivity(Intent.createChooser(shareIntent, "Share Image"));
} else {
// ...sharing failed, handle error
}
} catch (Exception e) {

}
}

这是我如何从图像 URL 获取位图

public Uri getLocalBitmapUri(ImageView imageView) {
// Extract Bitmap from ImageView drawable
Drawable drawable = imageView.getDrawable();
Bitmap bmp = null;
if (drawable instanceof BitmapDrawable){
bmp = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
} else {
return null;
}
// Store image to default external storage directory
Uri bmpUri = null;
try {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOWNLOADS), "share_image_" + System.currentTimeMillis() + ".png");
file.getParentFile().mkdirs();
FileOutputStream out = new FileOutputStream(file);
bmp.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
bmpUri = Uri.fromFile(file);
} catch (IOException e) {
e.printStackTrace();
}
return bmpUri;
}

我不知道为什么将它与同一设备上的其他应用程序(例如图库或其他应用程序)进行比较需要比平时更长的时间

最佳答案

您正在主应用程序线程上执行磁盘 I/O,在 getLocalBitmapUri() 中。只要将位图写入磁盘,这就会卡住您的 UI。

关于java - 分享 Intent 需要很长时间才能出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43354286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com