图片下载(不使用开源框架)
2015-11-26 15:00
288 查看
下载单张图片:
在 AndroidManifest.xml 中注册访问网络的权限:
package com.android.findpicture; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLConnection; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; public class MainActivity extends Activity { ImageView show; EditText editText; Button download; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); show = (ImageView)findViewById(R.id.show); editText = (EditText)findViewById(R.id.editText); download = (Button)findViewById(R.id.download); final Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 0x123){ Bitmap bitmap = (Bitmap) msg.obj; show.setImageBitmap(bitmap); } } }; download.setOnClickListener(new OnClickListener() { // http://p0.so.qhimg.com/t01a918ebc937cc3885.jpg @Override public void onClick(View v) { final String uri = editText.getText().toString(); new Thread(new Runnable(){ public void run() { Bitmap bitmap = getImageFromNet(uri); if (bitmap != null){ Message msg = new Message(); msg.what = 0x123; msg.obj = bitmap; handler.sendMessage(msg); } }}).start(); } }); } private Bitmap getImageFromNet(String uri){ HttpURLConnection conn = null; try { URL url = new URL(uri); conn = (HttpURLConnection) url.openConnection(); conn.setConnectTimeout(30000); conn.setDoInput(true); conn.setReadTimeout(30000); conn.connect(); InputStream in = conn.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(in); return bitmap; } catch (IOException e) { e.printStackTrace(); } finally { if (conn != null){ conn.disconnect(); } } return null; } }
在 AndroidManifest.xml 中注册访问网络的权限:
<uses-permission android:name="android.permission.INTERNET"/>
相关文章推荐
- iOS 保存图片到自己的App的一种思路
- Bootstrap 页面标题(Page Header)
- MongoDB入门实践
- 自定义事件分发,执行耗时操作服务
- opencv2.4.9中K-means算法理解
- winform登录时载入验证码,并且点击可刷新
- declspec(dllexport)和declspec(dllexport)的实际应用
- 无线网卡的Master,Managed,ad-hoc,monitor模式
- UI_界面传值方式
- C++primer plus第六版课后编程练习答案5.7
- 一次 JVM 调优的笔记
- Caffe中learning rate 和 weight decay 的理解
- 容斥原理-shuoj—小明系列之高中时光
- PHP 解析JSON数组
- 单个listView展示多类型Item出现混乱显示的问题
- JAVA【设计模式】—— 总览导图
- 计算机网络---基础题目汇总二
- ListView 中使用Button中不响应OnItemClickListener事件
- 求复数的对数
- servlet url