Android之图片缓存数据流
来源:互联网 发布:单片机项目设计教程 编辑:程序博客网 时间:2024/05/19 03:44
从网络中请求图片进行缓存
先看一下最终效果图:
好,接下来开始实现整个程序:
activity_main.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.httpimg.MainActivity" > <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" /></RelativeLayout>
MainActivity.java:
import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;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 { ImageView iv; Handler handler = new Handler(){ public void handleMessage(android.os.Message msg) { iv.setImageBitmap((Bitmap) msg.obj); }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); iv = (ImageView) findViewById(R.id.img); //http://pic.baike.soso.com/p/20090711/20090711101754-314944703.jpg new Thread(new Runnable() { @Override public void run() { getImg(); } }){}.start(); } protected void getImg() { try { URL url = new URL("http://pic.baike.soso.com/p/20090711/20090711101754-314944703.jpg"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //默认是get请求 如果想使用post必须指明 connection.setRequestMethod("GET"); connection.setReadTimeout(5000); connection.setConnectTimeout(5000); int code = connection.getResponseCode(); if(code == 200){ InputStream inputStream = connection.getInputStream(); //因为该地址是一个图片的地址,所以返回的数据流就是一个图片的数据流 //直接用该图片的数据流 转换成 一个Bitmap Bitmap bit = BitmapFactory.decodeStream(inputStream); //因为子线程不能更新UI 所以使用Handler完成 Message message = Message.obtain(); message.obj = bit; handler.sendMessage(message); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
好了,这就是整个程序的实现过程,希望对大家有所帮助!
阅读全文
0 0
- Android之图片缓存数据流
- Android之图片缓存
- Android之图片缓存
- android图片缓存之softReference
- android 图片缓存之 createBitmap
- Android之图片缓存管理
- Android之缓存网络图片
- android图片缓存之文件(Sdcard)
- Android 之图片本地缓存解决方案
- android 之图片异步加载,带缓存。
- android代码解析之图片缓存(ImageDownloader)
- Android图片缓存之Bitmap详解
- 初识Glide-Android图片缓存之
- Android图片缓存之初识Glide
- Android图片缓存之初识Glide
- Android图片缓存之初识Glide
- Android图片缓存之初识Glide
- Android图片缓存之初识Glide
- vue基础
- C语言整数与字符串相互转换库函数
- 六、彩色瓷砖
- Linux下的各种压缩解压缩命令详解
- P1936 水晶灯火灵
- Android之图片缓存数据流
- 免安装版mysql的启动
- SAT求解机之minisat&zchaff的安装与运行
- Matrix (POJ
- JZOJ5220. 【GDOI2018模拟7.10】C(2017.8DP&贪心专题)
- 【学生】优化(二)
- Android自定义水平进度条
- timer实现倒计时
- 京东内推:最大连续乘积子数组