问题描述
哎,我是新来的Android和我有一个小问题。我试图把一个列表视图与图像通过一个URL加载。到目前为止是这种情况,但图像不会出现。 logcat中这样说:
hey,i'm new to android and i have a slight problem. i'm trying to put together a listview with images are loaded through a URL. this works so far, but the images wont show up. logcat says this:
02-23 19:20:48.447: INFO/System.out(833): resolveUri failed on bad bitmap uri: android.graphics.drawable.BitmapDrawable@405359b0
它显然没有找到我的形象,但我不知道为什么。使用R.drawable.icon工作虽然。谁能帮助我?我的继承人来源:
its obviously not finding my image, but i have no idea why. using R.drawable.icon works though. can anyone help me out? heres my source:
public class Main extends Activity {
private ListView lv_main;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
lv_main = (ListView) findViewById(R.id.listviewmain);
ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
HashMap<String,String> map;
map = new HashMap<String, String>();
map.put("title", "a title goes here");
map.put("details", "details blaa");
map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png"));
//THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
listItem.add(map);
map = new HashMap<String, String>();
map.put("title", "2nd title");
map.put("details", "more details");
map.put("cover", String.valueOf(Main.this.LoadImageFromWebOperations("http://www.google.com/images/srpr/nav_logo37.png"));
//THIS WORKS FINE: map.put("cover", String.valueOf(R.drawable.icon));
listItem.add(map);
SimpleAdapter mSchedule = new SimpleAdapter (this.getBaseContext(), listItem, R.layout.listviewitem, new String[] {"cover", "title", "details"}, new int[] {R.id.cover, R.id.title, R.id.details});
lv_main.setAdapter(mSchedule);
}
public Drawable LoadImageFromWebOperations(String url) {
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src name");
return d;
}catch (Exception e) {
System.out.println("Exc="+e);
return null;
}
}
}
在此先感谢。抢
thanks in advance.rob
推荐答案
我已经解决了这个问题。我现在用的是code,以解决这一问题。
I have resolved this issue.I am using the code to solve the issue.
下面路径是可以使用了本地文件系统路径: Environment.getExternalStorageDirectory()getAbsolutePath()
Here 'Path' is a local file System path that can be got using: Environment.getExternalStorageDirectory().getAbsolutePath()
public static String loadImageFromWebOperations(String url, String path) {
try {
InputStream is = (InputStream) new URL(url).getContent();
System.out.println(path);
File f = new File(path);
f.createNewFile();
FileOutputStream fos = new FileOutputStream(f);
try {
byte[] b = new byte[100];
int l = 0;
while ((l = is.read(b)) != -1)
fos.write(b, 0, l);
} catch (Exception e) {
}
return f.getAbsolutePath();
} catch (Exception e) {
System.out.println("Exc=" + e);
return null;
}
}
希望这有助于:)
Hope this helps :).
这篇关于&QUOT; resolveUri没有坏的位图URI&QUOT;穿着ListView的图像时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!