【发布时间】:2013-05-22 15:50:48
【问题描述】:
我是 Android 开发的新手,整天都在研究我的 ListAdapter 的问题,但找不到任何可以帮助我解决问题的答案。
我有一个从 URL 解析的 JSON NewsString,需要将缩略图加载到 ListView 中。 我尝试通过 Imageloader (https://github.com/novoda/ImageLoader#directloader-utility) 加载它,然后将 Bitmap 转换为 Drawable,以便我可以在我的 ListView 中使用它(之前做过)。
我拥有 Manifest 中的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
并且 JsonObject 在 AsyncTask 中被解析,我尝试从 Url 加载图像。
try {
String url = e.getString("imageThumb");
Bitmap bmp = new DirectLoader().download(url);
Drawable d = new BitmapDrawable(null,bmp);
Log.d("getBitmap", d.toString());
row.put("thumb", d);
}catch (Exception e5) {
Log.e("IMG", "Failed to load Thumbnail From URL: "+e5.toString());
Drawable d = MainActivity.hweb_icon;
row.put("thumb", d);
}
但我总是收到相同的错误消息:
我尝试了几个教程和其他东西,但对我来说从来没有成功。 URL 正确,不需要任何编码。
我之前的做法是这样的:
try {
String url = e.getString("imageThumb");
InputStream in = new java.net.URL(url).openStream();
Bitmap bmp = BitmapFactory.decodeStream(in);
Drawable d = new BitmapDrawable(null,bmp);
row.put("thumb", d);
}catch (Exception e5) {
// handle it
Log.e("IMG", "Failed to load Thumbnail From URL : "+e5.toString());
}
对不起,如果这个问题已经回答了,但我找到了很多解决方案并尝试了它们,但没有一个能帮助我。
谢谢
pwittke
编辑: 我创建了一个新的Testproject,下面的代码运行良好,所以我开始以某种方式停用每个使用drawables的部分,结果证明SimpleAdapter无法以这种方式加载图像......它只能从资源中加载图像,而不是从url...谢谢您的脚本britzl,它工作正常,现在我需要找到一种方法来更改我的图像适配器...
【问题讨论】:
标签: android listview android-asynctask bitmapfactory