将图像从互联网导入位图

Importing image from internet into Bitmap

我的位图有问题。 我调用方法:

mStickerListener.onStickerClick(
                                    BitmapFactory.decodeResource(getResources(),
                                            Integer.parseInt(stickerList.get(getLayoutPosition()))));

但问题是我的 stickerList.get(getLayoutPosition()))) returns 字符串值 (link),因为我用 Picasso 显示图像,所以出现异常:

    java.lang.NumberFormatException: For input string: "https://firebasestorage.googleapis.com/v0/b/templatestest-38e3f.appspot.com/o/templates%2Fanimals_templates%2Fdog.png?alt=media&token=3e31962f-df24-493a-91c9-273f3496fa89"
      

求求你帮我解决!

首先,您遇到的异常表明您正在尝试转换字符串 "https://firebasestorage.googleapis.com/v0/b/templatestest-38e3f.appspot.com/o/templates%2Fanimals_templates%2Fdog.png?alt=media&token=3e31962f-df24-493a-91c9-273f3496fa89" 到整数

您使用的方法 BitmapFactory.decodeResource 将资源 ID 作为输入而不是 url。

您需要使用以下代码从 url:

中获取位图
 try {
    URL url = new URL("https://firebasestorage.googleapis.com/v0/b/templatestest-38e3f.appspot.com/o/templates%2Fanimals_templates%2Fdog.png?alt=media&token=3e31962f-df24-493a-91c9-273f3496fa89");
    Bitmap image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch(IOException e) {
    System.out.println(e);
}

此外,在 AndroidManifest.xml 中添加互联网权限,因为您将访问互联网以从 url 获取流。

<uses-permission android:name="android.permission.INTERNET" />