• android读取远程图片案例


    关键代码:
    Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
    imageview.setImageBitmap(bitmap);

    注意访问网络权限:<uses-permission android:name="android.permission.INTERNET"/>

    完整测试代码如下:

     1 package caicai.cn.netimag;
     2 
     3  import java.io.ByteArrayOutputStream;
     4  import java.io.InputStream;
     5  import java.net.HttpURLConnection;
     6  import java.net.URL;
     7 
     8  public class imageserver {
     9  public static byte[] getimage(String path) throws Exception{ //连接远程网址
    10  URL url=new URL(path);
    11  HttpURLConnection conn=(HttpURLConnection) url.openConnection();
    12  conn.setConnectTimeout(5000);
    13  conn.setRequestMethod("GET");
    14  if(conn.getResponseCode()==200){
    15  InputStream instream=conn.getInputStream();
    16  return read(instream); 
    17  }
    18  return null;
    19  }
    20 
    21  private static byte[] read(InputStream instream) throws Exception{ //  读取数据流,返回字节数据流
    22  ByteArrayOutputStream outstream=new ByteArrayOutputStream(); 
    23  byte[] buffer=new byte[1024];
    24  while( (instream.read(buffer))!=-1){
    25  outstream.write(buffer); 
    26  } 
    27  instream.close();
    28  return outstream.toByteArray();
    29  }
    30  }
    imageserver.java
     1 package caicai.cn.netimag;
     2 
     3  import android.app.Activity;
     4  import android.graphics.Bitmap;
     5  import android.graphics.BitmapFactory;
     6  import android.os.Bundle;
     7  import android.view.View;
     8  import android.widget.ImageView;
     9  import android.widget.Toast;
    10 
    11  public class NetimageActivity extends Activity {
    12 
    13  public ImageView imageview;
    14  public void onCreate(Bundle savedInstanceState) {
    15  super.onCreate(savedInstanceState);
    16  setContentView(R.layout.main);
    17  imageview=(ImageView) findViewById(R.id.imageview);
    18  }
    19  public void submit(View v){
    20  String path="http://192.168.0.117/testxml/bottom.png";
    21  try{
    22    byte[] data=imageserver.getimage(path);
    23    Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);   //生成图片工厂
    24  imageview.setImageBitmap(bitmap);  //显示图片
    25  }catch(Exception e){
    26 
    27  Toast.makeText(getApplicationContext(), "出错了", 1).show();
    28  }
    29  }
    30  }
    NetimageActivity.java
     1 <?xml version="1.0" encoding="utf-8"?>
     2  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3  android:layout_width="fill_parent"
     4  android:layout_height="fill_parent"
     5  android:orientation="vertical" >
     6 
     7  <Button 
     8  android:layout_width="fill_parent"
     9  android:layout_height="wrap_content"
    10  android:text="获取网络图片"
    11  android:onClick="submit"/>
    12  <ImageView 
    13  android:layout_width="fill_parent"
    14  android:layout_height="wrap_content"
    15  android:id="@+id/imageview"
    16  android:src="@drawable/ic_launcher"
    17  />
    18 
    19  </LinearLayout>
    main.xml
     1 <?xml version="1.0" encoding="utf-8"?>
     2  <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3  package="caicai.cn.netimag"
     4  android:versionCode="1"
     5  android:versionName="1.0" >
     6 
     7  <uses-sdk android:minSdkVersion="8" />
     8  <uses-permission android:name="android.permission.INTERNET"/>
     9 
    10  <application
    11  android:icon="@drawable/ic_launcher"
    12  android:label="@string/app_name" >
    13  <activity
    14  android:label="@string/app_name"
    15  android:name=".NetimageActivity" >
    16  <intent-filter >
    17  <action android:name="android.intent.action.MAIN" />
    18 
    19  <category android:name="android.intent.category.LAUNCHER" />
    20  </intent-filter>
    21  </activity>
    22  </application>
    23 
    24  </manifest>
    AndroidManifest.xml

     更新最新加载方法

    	/**
    	 * 根据一个网络连接(String)获取bitmap图像
    	 * 
    	 * @param imageUri
    	 * @return
    	 * @throws MalformedURLException
    	 */
    	public static Bitmap getbitmap(String imageUri) {
    		// 显示网络上的图片
    		Bitmap bitmap = null;
    		try {
    			URL myFileUrl = new URL(imageUri);
    			HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection();
    			conn.setDoInput(true);
    			conn.connect();
    			InputStream is = conn.getInputStream();
    			bitmap = BitmapFactory.decodeStream(is);
    			is.close();
    		} catch (IOException e) {
    			e.printStackTrace();
    			return null;
    		}
    		return bitmap;
    	}
    
  • 相关阅读:
    十大排序算法详解,基本思想+动画演示+C语言实现,太肝了!
    宛如一个未来穿越者,终年33岁的印度数学天才,大数学家哈代说“他发现并创造了数学”
    编程的相关概念
    android中ScrollView嵌套ListView或GridView显示位置问题
    炫酷MD风之dialog各种对话框
    (转载)new Thread的弊端及Java四种线程池的使用
    (转载)Android开发——Android中常见的4种线程池(保证你能看懂并理解)
    (转)android import library switch语句报错case expressions must be constant expressions
    eclipse中将一个项目作为library导入另一个项目中
    (转)Android四大组件——Activity跳转动画、淡出淡入、滑出滑入、自定义退出进入
  • 原文地址:https://www.cnblogs.com/clarence/p/3151258.html
Copyright © 2020-2023  润新知