1

如何解析这个网址

http://ioe.edu.np/exam/notices/8560Result%20Diploma%20I_I.jpg

正确,以便它可以用作 imageview 的源。我尝试使用 Uri.encode() 对其进行编码,但这没有帮助。

下面是我指的是从 url 加载图像的代码。从Android 获得,在与 ImageView 的图像相同的 URL 处制作图像

public class MainActivity extends Activity {

//  String imageUrl1 = "http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png";

String imageUrl = Uri.encode("http://ioe.edu.np/exam/notices/8560Result Diploma I_I.jpg");

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    try {
        ImageView i = (ImageView) findViewById(R.id.imageView1);
        Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(
                imageUrl).getContent());
        i.setImageBitmap(bitmap);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}

}

请帮助我,并注意我无法控制图像文件的名称,所以我必须想办法让它在图像视图中正确加载。如果我用 imageUrl1 替换 imageUrl,那么图像会加载。但是对于 imageUrl,将空间编码为 html 实体似乎是个问题。请帮我解决一下这个。

谢谢你。

4

2 回答 2

1

利用

String imageUrl ="http://ioe.edu.np/exam/notices/8560Result Diploma I_I.jpg";
    imageUrl =imageUrl .replaceAll(" ", "%20");

示例代码

String imageUrl ="http://ioe.edu.np/exam/notices/8560Result Diploma I_I.jpg";
    imageUrl =imageUrl .replaceAll(" ", "%20");
    try {
        Bitmap bitmap = BitmapFactory.decodeStream((InputStream) new URL(
                imageUrl).getContent());

        ImageView im=new ImageView(this);
        im.setImageBitmap(bitmap);
        setContentView(im);
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2012-07-16T18:27:32.113 回答
0

这段代码适用于我的情况,

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

try {
        URL url = new URL("http://ioe.edu.np/exam/notices/8560Result%20Diploma%20I_I.jpg");
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        i.setImageBitmap(myBitmap);
    } catch (IOException e) {
        e.printStackTrace();
    }

还要在清单文件中添加权限,

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

编辑:

你也可以使用UrlEncoder.

String urlString = URLEncoder.encode("http://ioe.edu.np/exam/notices/8560Result Diploma I_I.jpg");
url = new URL(urlString);
于 2012-07-16T18:26:50.703 回答