Android 使用URI从web获取图像

Android 使用URI从web获取图像,android,Android,这个代码有什么问题。它不会给出错误,但看不到图像 ImageView a= (ImageView) findViewById(R.id.imageView1); String imageBaseDirectory = "www.dha.com.tr/newpics/news/"; String imageName = "230620111356175716857.jpg"; a.setImageURI(Uri.parse(imageBaseDirectory+imageName)); 您应

这个代码有什么问题。它不会给出错误,但看不到图像

ImageView a= (ImageView) findViewById(R.id.imageView1);

String imageBaseDirectory = "www.dha.com.tr/newpics/news/";
String imageName = "230620111356175716857.jpg";
a.setImageURI(Uri.parse(imageBaseDirectory+imageName)); 

您应该在这里发布Logcat输出,以便我们了解可能出现的问题

但您仍然可能忘记在AndroidManifest.xml中添加INTERNET权限:

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

尝试使用

a.setImageBitmap(BitmapFactory.decodeStream(new URL(imageBaseDirectory+imageName).openConnection().getInputStream()));

正如Android中所建议的那样。

Uri.parse需要一个编码的Uri字符串,因此我认为您必须添加该方案

String imageBaseDirectory = "http://www.dha.com.tr/newpics/news/";

首先,您应该在URI的开头添加
http://

Uri uri = Uri.parse("http://www.dha.com.tr/newpics/news/230620111356175716857.jpg");

ImageView
不支持从远程位置加载图像。仅本地文件系统上的资源或文件。在您的情况下,您应该在
LogCat
中看到警告:

06-23 15:19:52.487: WARN/System.err(27097): java.io.FileNotFoundException: /http:/www.dha.com.tr/newpics/news/230620111356175716857.jpg (No such file or directory)
06-23 15:19:52.503: WARN/System.err(27097):     at org.apache.harmony.luni.platform.OSFileSystem.openImpl(Native Method)
06-23 15:19:52.503: WARN/System.err(27097):     at org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
06-23 15:19:52.503: WARN/System.err(27097):     at java.io.FileInputStream.<init>(FileInputStream.java:82)
06-23 15:19:52.503: WARN/System.err(27097):     at java.io.FileInputStream.<init>(FileInputStream.java:134)
06-23 15:19:52.503: WARN/System.err(27097):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:349)
06-23 15:19:52.503: WARN/System.err(27097):     at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:399)
06-23 15:19:52.503: WARN/System.err(27097):     at android.graphics.drawable.Drawable.createFromPath(Drawable.java:801)
06-23 15:19:52.503: WARN/System.err(27097):     at android.widget.ImageView.resolveUri(ImageView.java:516)
06-23 15:19:52.503: WARN/System.err(27097):     at android.widget.ImageView.setImageURI(ImageView.java:293)
...
06-23 15:19:52.503: WARN/System.err(27097):     at dalvik.system.NativeStart.main(Native Method)
06-23 15:19:52.503: INFO/System.out(27097): resolveUri failed on bad bitmap uri: http://www.dha.com.tr/newpics/news/230620111356175716857.jpg
06-23 15:19:52.487:WARN/System.err(27097):java.io.FileNotFoundException:/http:/www.dha.com.tr/newpics/news/23062011356175716857.jpg(无此类文件或目录)
06-23 15:19:52.503:WARN/System.err(27097):位于org.apache.harmony.luni.platform.OSFileSystem.openImpl(本机方法)
06-23 15:19:52.503:WARN/System.err(27097):位于org.apache.harmony.luni.platform.OSFileSystem.open(OSFileSystem.java:152)
06-23 15:19:52.503:WARN/System.err(27097):位于java.io.FileInputStream。(FileInputStream.java:82)
06-23 15:19:52.503:WARN/System.err(27097):位于java.io.FileInputStream。(FileInputStream.java:134)
06-23 15:19:52.503:WARN/System.err(27097):位于android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:349)
06-23 15:19:52.503:WARN/System.err(27097):位于android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:399)
06-23 15:19:52.503:WARN/System.err(27097):在android.graphics.drawable.drawable.createFromPath(drawable.java:801)
06-23 15:19:52.503:WARN/System.err(27097):位于android.widget.ImageView.resolveUri(ImageView.java:516)
06-23 15:19:52.503:WARN/System.err(27097):位于android.widget.ImageView.setImageURI(ImageView.java:293)
...
06-23 15:19:52.503:WARN/System.err(27097):在dalvik.System.NativeStart.main(本机方法)
06-23 15:19:52.503:INFO/System.out(27097):错误位图uri上的resolveUri失败:http://www.dha.com.tr/newpics/news/230620111356175716857.jpg

您应该自己下载图像,然后为
setImageURI
指定本地路径