Android(安卓)原始下载图片 通过HTTp
16lz
2021-12-04
package com.example.glide;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import com.bumptech.glide.Glide;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.widget.ImageView;public class MainActivity extends Activity {// 将从此URL加载网络图片。 private String img_url = "http://avatar.csdn.net/9/7/A/1_zhangphil.jpg"; privateHandler handler; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ImageView image=(ImageView) findViewById(R.id.imageView);//Glide.with(this).load(img_url).crossFade(1000).into(image); handler=new Handler(){@OverridepublicvoidhandleMessage(Message msg){Bitmap bmp=(Bitmap) msg.obj;image.setImageBitmap(bmp);}};new Thread(new Runnable(){@Overridepublic void run() {Bitmap bmp=loadBitmap(img_url);Message msg=handler.obtainMessage();msg.obj=bmp;handler.sendMessage(msg);}}).start();}privateBitmap loadBitmap(String url){Bitmap bmp = null; try { byte[] imageBytes = loadRawDataFromURL(url); bmp = BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); } catch (Exception e) { e.printStackTrace(); } returnbmp;}public static byte[] loadRawDataFromURL(String u) throws Exception { URL url = new URL(u); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayOutputStream baos = new ByteArrayOutputStream(); final int BUFFER_SIZE = 2048; final int EOF = -1; int c; byte[] buf = new byte[BUFFER_SIZE]; while (true) { c = bis.read(buf); if (c == EOF) break; baos.write(buf, 0, c); } conn.disconnect(); is.close(); byte[] data = baos.toByteArray(); baos.flush(); return data; } }
更多相关文章
- android 大图片拖拽并缩放实现原理
- Android:下载网络图片
- android ScrollView 多张图片之间有空白
- android 网络状态监听
- android从网上下载图片
- android ImageSwitcher案例
- Android图片上传工具类
- android访问网络图片
- android:使用webview加载网页