android下图片
来源:互联网 发布:云计算平台构建 编辑:程序博客网 时间:2024/05/02 07:16
如果每下载一张图片,就得重写一次Http协议,多线程的启动和handler的信息传递就显得太麻烦了,我们直接来封装一个工具类,便于我们以后在开发时随时可以调用。
(2)编辑工具类
(3)调用该工具类
(1)在清单文件添加权限
- <uses-permission android:name="android.permission.INTERNET"/>
(2)编辑工具类
- package com.example.g05_handler;
- import java.io.IOException;
- import org.apache.http.HttpResponse;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.methods.HttpGet;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.util.EntityUtils;
- import android.annotation.SuppressLint;
- import android.app.ProgressDialog;
- import android.content.Context;
- import android.os.Handler;
- import android.os.Message;
- import android.util.Log;
- public class DownLoad {
- private ProgressDialog dialog;
- public DownLoad(Context context) {
- // TODO Auto-generated constructor stub
- dialog = new ProgressDialog(context);
- dialog.setTitle("提示");
- dialog.setMessage("玩命加载中");
- }
- @SuppressLint("HandlerLeak")
- public void Down(final String path, final DownLoadCallback callback) {
- final Handler handler = new Handler() {
- @Override
- public void handleMessage(Message msg) {
- // TODO Auto-generated method stub
- super.handleMessage(msg);
- byte[] result = (byte[]) msg.obj;
- callback.download(result);
- if (msg.what == 1) {
- dialog.dismiss();
- }
- }
- };
- class MyThread implements Runnable {
- @Override
- public void run() {
- // TODO Auto-generated method stub
- HttpClient client = new DefaultHttpClient();
- HttpGet httpGet = new HttpGet(path);
- try {
- HttpResponse httpResponse = client.execute(httpGet);
- Log.i("TAG", "------>"
- + httpResponse.getStatusLine().getStatusCode());
- if (httpResponse.getStatusLine().getStatusCode() == 200) {
- byte[] result = EntityUtils.toByteArray(httpResponse
- .getEntity());
- Message message = Message.obtain();
- message.obj = result;
- message.what = 1;
- handler.sendMessage(message);
- }
- } catch (ClientProtocolException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (client != null) {
- client.getConnectionManager().shutdown();
- }
- }
- };
- }
- new Thread(new MyThread()).start();
- dialog.show();
- }
- public interface DownLoadCallback {
- public void download(byte[] data);
- }
- }
(3)调用该工具类
- package com.example.g05_handler;
- import com.example.g05_handler.DownLoad.DownLoadCallback;
- import android.os.Bundle;
- import android.app.Activity;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.view.Menu;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- public class MainActivity extends Activity {
- private Button button;
- private ImageView imageView;
- private final String path="http://avatar.csdn.net/D/7/5/1_u013900875.jpg";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- button=(Button)this.findViewById(R.id.button1);
- imageView=(ImageView)this.findViewById(R.id.imageView1);
- button.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- DownLoad downLoad=new DownLoad(MainActivity.this);
- downLoad.Down(path, new DownLoadCallback() {
- @Override
- public void download(byte[] data) {
- // TODO Auto-generated method stub
- Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
- imageView.setImageBitmap(bitmap);
- }
- });
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- }
0 0
- android下图片压缩
- android下图片压缩
- android下图片
- Android获取SD卡根目录下图片
- android下图片压缩 -- 图像处理
- Android 编程下图片的内存优化
- Android 编程下图片的内存优化
- android 下图片的内存优化
- Android 编程下图片的内存优化
- Android 编程下图片的内存优化
- Android通过名字拿Res下图片
- Android下图片处理的的一些方法
- Android下图片处理的的一些方法
- Android下图片处理的的一些方法
- 【Android应用实例之一】自动播放Assets下图片
- Android下图片处理的的一些方法
- Android下图片处理的的一些方法
- Android下图片处理的的一些方法
- 玩电商?其实O2O才是微信真正想要的
- cookie 小功能,保存每次登录时间时间
- 研究生毕业答辩
- 5.28~6.3 电脑惨遭不幸
- 黑马程序员--JavaBean内省
- android下图片
- 不能将"constchar*"类型的值分配到"LPCWSTR"类型的实体错误解决方法
- 《软件需求十步走》笔记
- 虎嗅网是一个有视角的、个性化商业资讯与交流平台,核心关注对象是包括公众公司与创业型企业在内的一系列明星公司
- Source Insight 中关闭打开文件中比较旧的文件
- C++容器之map
- hdu 2845 Beans(dp)
- The final five question form qhpMaster
- MyEclipse 10、9、8 添加jadClipse反编译插件