我正在从URL下载图像,但下载完成后图像不会更改.
我在下面输入代码,有没有人经历过同样的事情?
我在下面输入代码,有没有人经历过同样的事情?
- public class MyImgActivity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- ImageView imgView =(ImageView)findViewById(R.id.imageView1);
- Drawable drawable = LoadImageFromWebOperations("http://www.gophoto.it/view.PHP?i=http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png");
- imgView.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;
- }
- }
- }
XML文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <ImageView
- android:id="@+id/imageView1"
- android:layout_height="match_parent"
- android:layout_width="match_parent"></ImageView>
- </LinearLayout>
清单文件
- <uses-permission android:name="android.permission.INTERNET"/>
解决方法
请使用以下代码下载并将图像显示到imageview.
- public class image extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Bitmap bitmap = DownloadImage("http://www.gophoto.it/view.PHP?i=http://1.bp.blogspot.com/-2LTvCCufBKc/T3L3KgcTj2I/AAAAAAAABbQ/Ki60e1LU9sE/s1600/Sachin%2BTendulkar.png");
- ImageView img = (ImageView) findViewById(R.id.img);
- img.setImageBitmap(bitmap);
- }
- private InputStream OpenHttpConnection(String urlString) throws IOException {
- InputStream in = null;
- int response = -1;
- URL url = new URL(urlString);
- URLConnection conn = url.openConnection();
- if (!(conn instanceof HttpURLConnection))
- throw new IOException("Not an HTTP connection");
- try {
- HttpURLConnection httpConn = (HttpURLConnection) conn;
- httpConn.setAllowUserInteraction(false);
- httpConn.setInstanceFollowRedirects(true);
- httpConn.setRequestMethod("GET");
- httpConn.connect();
- response = httpConn.getResponseCode();
- if (response == HttpURLConnection.HTTP_OK) {
- in = httpConn.getInputStream();
- }
- } catch (Exception ex) {
- throw new IOException("Error connecting");
- }
- return in;
- }
- private Bitmap DownloadImage(String URL) {
- Bitmap bitmap = null;
- InputStream in = null;
- try {
- in = OpenHttpConnection(URL);
- bitmap = BitmapFactory.decodeStream(in);
- in.close();
- } catch (IOException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
- return bitmap;
- }
- }