2011-06-23 21 views
2

このコードには何が問題なのですか?エラーは発生しませんが、イメージは表示されません。URIでウェブから画像を取得

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)); 

答えて

3

まず、あなたはあなたの最初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のローカルパスを指定する必要があります。

0

可能性のある問題を知るためにLogcat出力をここに掲載してください。

しかし、それでもまだ、あなたはAndroidManifest.xmlを内部でINTERNET権限を追加することを忘れて:アンドロイドdocumentationで提案されているように

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

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

を使用してみてください。

+0

wow。アセンブリ言語のように見える – user275801

0

Uri.parseにはエンコードされたURI文字列が必要です。スキームを追加する必要があると思います。

String imageBaseDirectory = "http://www.dha.com.tr/newpics/news/"; 
関連する問題