gpt4 book ai didi

java - 解码位图流失败

转载 作者:太空狗 更新时间:2023-10-29 14:25:08 24 4
gpt4 key购买 nike

我正在尝试完成 “Sam 的 24 小时自学 Android 应用程序开发”,但在第 12 小时就卡住了。问题似乎出在这一部分:

private Drawable getQuestionImageDrawable(int questionNumber) {
Drawable image;
URL imageUrl;

try {
// Create a Drawable by decoding a stream from a remote URL
imageUrl = new URL(getQuestionImageUrl(questionNumber));
InputStream stream = imageUrl.openStream();
Bitmap bitmap = BitmapFactory.decodeStream(stream);
image = new BitmapDrawable(getResources(), bitmap);
} catch (Exception e) {
Log.e(TAG, "Decoding Bitmap stream failed");
image = getResources().getDrawable(R.drawable.noquestion);
}
return image;
}

questionNumbergetQuestionImageUrl() 已经过测试并返回我认为正确的值(1 和 http://www.perlgurl. org/Android/BeenThereDoneThat/Questions/q1.png)。该网址上有一张图片,但我总是遇到异常。我尝试了几种变体,但当它们都不起作用时,我又回到了书中的这段代码。我在这里做错了什么?

我是 java 和 android 的新手,所以我可能遗漏了一些简单的东西。我在书中的代码和网站上更新的代码中遇到了许多其他问题(所有这些问题都已在此处或通过 developer.android.com 解决)。这是我的第一个问题,所以如果我没有提供任何信息,请告诉我。

最佳答案

我会执行以下操作,它可能会起作用:

private Drawable getQuestionImageDrawable(int questionNumber) {
Drawable image;
URL imageUrl;

try {
// Create a Drawable by decoding a stream from a remote URL
imageUrl = new URL(getQuestionImageUrl(questionNumber));
HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(stream);
image = new BitmapDrawable(getResources(), bitmap);
} catch (Exception e) {
Log.e(TAG, "Decoding Bitmap stream failed");
image = getResources().getDrawable(R.drawable.noquestion);
}
return image;
}

确保您在后台线程而不是主线程中执行此类繁重的操作,并且对您的应用程序的 list 具有 INERNET 权限。让我知道你的进步。

关于java - 解码位图流失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13257088/

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