此代码有什么问题。它没有给出错误,但没有看到图像
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));
答案 0 :(得分:4)
首先,您应该在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
您应自行下载图像,然后指定setImageURI
的本地路径。
答案 1 :(得分:3)
尝试使用
a.setImageBitmap(BitmapFactory.decodeStream(new URL(imageBaseDirectory+imageName).openConnection().getInputStream()));
在Android documentation中建议。
答案 2 :(得分:0)
您应该在此处发布Logcat输出,以便我们了解可能存在的问题。
但您仍然可能忘记在AndroidManifest.xml中添加INTERNET权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
答案 3 :(得分:0)
Uri.parse需要一个编码的URI字符串,所以我认为你必须添加该方案。
String imageBaseDirectory = "http://www.dha.com.tr/newpics/news/";