2011-05-16 91 views
0

我搜索并尝试了几种不同的方法。我在这两个方面都有所欠缺。这是我目前的方法:从网址加载图像

package com.dop.mobilevforum; 

import java.io.InputStream; 
import java.net.URL; 

import android.app.Activity; 
import android.content.Context; 
import android.content.res.Configuration; 
import android.graphics.drawable.Drawable; 
import android.net.Uri; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.ImageView; 
import android.widget.VideoView; 

public class Vforum extends Activity 
{ 
    private String imgPath = "http://mysite.com/mv/vfdemo1/slides/slide1.jpg"; 

    private ImageView slideHolder; 

    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.vforum); 

     slideHolder = (ImageView) findViewById(R.id.slideHolder); 

     Drawable drawable = LoadImageFromWebOperations(imgPath); 
     slideHolder.setImageDrawable(drawable); 
    } 

    private Drawable LoadImageFromWebOperations(String url) 
    { 
     try 
     { 
      InputStream is = (InputStream) new URL(url).getContent(); 
      Drawable d = Drawable.createFromStream(is, "src name"); 
      return d; 
     } 
     catch (Exception e) 
     { 
      Log.w("LoadImageFromWebOperations",e.toString()); 
      return null; 
     } 
    } 
} 

的LoadImageFromWebOperations方法返回一个位图,所以我知道那部分工作。这是我认为失败的slideHolder.setImageDrawable(drawable);。这是我的XML:

<?xml version="1.0" encoding="UTF-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="@drawable/mobile_vforum_bg"> 
    <ImageView 
     android:id="@+id/slideHolder" 
     android:layout_width="320px" 
     android:layout_height="240px"> 
    </ImageView> 
</FrameLayout> 

什么想法?我只是得到一个黑屏,没有错误。

+0

一对夫妇OS项目,我已经看到了刚刚使用的WebView来显示图像。 – NickAldwin 2011-05-16 20:38:21

+0

使用网络视图是如此简单! – Ronnie 2011-05-16 22:07:36

回答

2

最好的办法是使用WebView,但如果你真的想这样做,不要使用setImageDrawable。你应该使用setImageBitmap。如果你的LoadImageFromWebOperations返回一个位图,那么你不应该改变任何东西,但你正在使用的功能,它应该工作顺利。

+0

是的,WebView是要走的路。那太容易了。另外,当我说位图时,我的意思是像一个图像。我应该更清楚。它确实正在返回Drawable。 – Ronnie 2011-05-16 22:08:28

0

你的代码工作,我亲爱的朋友你的网址不工作http://mysite.com/mv/vfdemo1/slides/slide1.jpg

你可以使用这个它的工作原理100%,而且你的代码也可以

URL url = new URL("http://variable3.com/files/images/email-sig.jpg"); 
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream()); 
slideHolder.setImageBitmap(bmp); 
+0

我的网址确实有效。我改变了它,因为它是我不希望人们看到的信息。无论如何,我试过你的代码,我无法使它工作。我结束了使用WebView – Ronnie 2011-05-16 22:09:34