将图像从互联网导入位图
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" />
我的位图有问题。 我调用方法:
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" />