我无法使用来自互联网的图像

时间:2012-08-08 10:51:50

标签: android web-services android-emulator avd

我正在通过网址为我的图片视图调用图片,但它没有显示。 我的模拟器浏览器运行完美但任何使用互联网的应用程序都无法运行, 我已在清单文件中授予用户权限。 有人请帮忙。

这是我的代码

    package com.example.simpleimage;

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

import android.os.Bundle;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.widget.ImageView;

public class Simpleimage extends Activity {


    private String Url;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Url = "http://developer.android.com/images/dialog_progress_bar.png";

        ImageView iv = (ImageView)findViewById(R.id.iv);
                  Drawable drawable = LoadImageFromWebOperations(Url);
                  iv.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) {
                System.out.println("Exc=" + e);
                return null;
            }
    }

}

2 个答案:

答案 0 :(得分:0)

首先在清单中设置

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

在下面的方法中传递你的url链接后会返回位图 像这样

imgView.setImageBitmap(getImage("Your url")) ;
public static Bitmap getImage(String url){
        Bitmap img = null ;
        try {
            URL feedImage = new URL(url);
            HttpURLConnection conn= (HttpURLConnection)feedImage.openConnection();
            InputStream is = conn.getInputStream();
            img = BitmapFactory.decodeStream(is);

        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return img ;    
    }

答案 1 :(得分:0)

如果您在模拟器中设置代理,或者使用移动设备测试您的应用,请注意您不在代理网络上。

最简单和最好的方法是执行以下操作:这已经针对Android Emulator 2.2进行了

点击菜单

点击“设置”

点击无线&amp;网络

转到移动网络

转到接入点名称

在这里,您将Telkila Internet,点击它。

在编辑访问点部分,输入“代理”和“端口” 还提供用户名和密码,

其他字段将它们留空。