位置: 编程技术 - 正文

[置顶] Android实现网络图片app([置顶]公主大人接下来是拷问时间31)

编辑:rootadmin
Android实现输入一个网址,就可以看百度图片美女,是不是很心动?总共分三步:1.从输入框中获取图片文件路径,在主线程中创建消息处理器,发送http请求:url.openConnection();2.在创建的子线程中连接服务器get获取图片;3.在主线程中捕获从子线程 handler.sendMessage(msg)发送回来的消息msg,并解析图片数据,更新使用setImageBitmap()方法更新UI。废话少说,直接上代码:import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends Activity {protected static final int CHANGE_UI = 1; //帮我改UIprotected static final int ERROR = 2;private EditText et_path;private ImageView iView;//第一步:在主线程中创建消息处理器private Handler handler=new Handler(){ /* * (non-Javadoc)第三步: looper 获得 子线程传过来的消息进行 UI更新 * @see android.os.Handler#handleMessage(android.os.Message) */ public void handleMessage(android.os.Message msg) { //重写handlemessage方法 if (msg.what==CHANGE_UI) { Bitmap bitmap= (Bitmap)msg.obj; iView.setImageBitmap(bitmap); } else if (msg.what==ERROR) { Toast.makeText(MainActivity.this,"获取图片失败", 0).show(); } };}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_path=(EditText)findViewById(R.id.et); iView=(ImageView)findViewById(R.id.iv); } /* * Android2.X直接在主线程中获取服务器数据,这样如果朋多多任务,主线程就会崩溃 4.0之后舍弃此方法 */ //public void onClick(View view) {// String path=et_path.getText().toString().trim(); //获取文件路径// if (TextUtils.isEmpty(path)) {// Toast.makeText(MainActivity.this,"图片路径不能为空", 0).show();// } else {// //连接服务器get获取图片// try {// URL url=new URL(path); //包装路径// HttpURLConnection urlConnection=(HttpURLConnection) url.openConnection(); //根据url发送http请求// urlConnection.setRequestMethod("GET"); //指定获取图片的方式——get方式// urlConnection.setConnectTimeout(); //毫秒相当于5秒// int code=urlConnection.getResponseCode(); //得到服务器返回的响应码// if (code==) { //代表获取成功 代表获取失败// InputStream iStream=urlConnection.getInputStream();// Bitmap bitmap=BitmapFactory.decodeStream(iStream); //位图方法——把流转换为Bitmap// iView.setImageBitmap(bitmap); //显示bitmap// }else {// Toast.makeText(MainActivity.this, "显示图片失败", 0).show();// }// } catch (Exception e) {// e.printStackTrace();// Toast.makeText(MainActivity.this, "获取图片失败", 0).show();// }// }//}// /* * Android4.0之后 改进版,新开辟子线程,在子线程中访问服务器获取数据 */ public void onClick(View view) { final String path=et_path.getText().toString().trim(); //获取文件路径 if (TextUtils.isEmpty(path)) { Toast.makeText(MainActivity.this,"图片路径不能为空", 0).show(); } else { new Thread(){ public void run() { //连接服务器get获取图片 try { URL url=new URL(path); //包装路径 注意:内部类访问外部类,变量要加final HttpURLConnection urlConnection=(HttpURLConnection) url.openConnection(); //根据url发送http请求 urlConnection.setRequestMethod("GET"); //指定获取图片的方式——get方式 urlConnection.setConnectTimeout(); //毫秒相当于5秒 int code=urlConnection.getResponseCode(); //得到服务器返回的响应码 if (code==) { //代表获取成功 代表获取失败 InputStream iStream=urlConnection.getInputStream(); Bitmap bitmap=BitmapFactory.decodeStream(iStream); //位图方法——把流转换为Bitmap //iView.setImageBitmap(bitmap); //显示bitmap /* * 第二步:子线程告诉主线程一个消息,帮我更改UI,内容bitmap */ Message msg=new Message(); msg.what=CHANGE_UI; //在开头定义CHANGE_UI的宏 msg.obj=bitmap; //obj代表消息里面的数据 handler.sendMessage(msg); }else {// Toast.makeText(MainActivity.this, "显示图片失败", 0).show(); Message msg=new Message(); msg.what=ERROR; //在开头定义CHANGE_UI的宏 handler.sendMessage(msg); } } catch (Exception e) { e.printStackTrace(); Message msg=new Message(); msg.what=ERROR; //在开头定义CHANGE_UI的宏 handler.sendMessage(msg); //Toast.makeText(MainActivity.this, "获取图片失败", 0).show(); } } }.start(); } } }最终效果图:

推荐整理分享[置顶] Android实现网络图片app([置顶]公主大人接下来是拷问时间31),希望有所帮助,仅作参考,欢迎阅读内容。

[置顶]
        Android实现网络图片app([置顶]公主大人接下来是拷问时间31)

文章相关热门搜索词:[置顶]星陨计划,[置顶]津鱼.我爱你,[置顶]电影名字《收件人不详》,[置顶]游戏名:chivalry2,[置顶]电影名字《收件人不详》,[置顶]从lv2开始开挂的原勇者候悠闲的异世界生活,[置顶]游戏名:chivalry2,[置顶]电影名字《收件人不详》,内容如对您有帮助,希望把文章链接给更多的朋友!

android hander如何避免内存泄露 在使用AndroidHandler的时候,可能会遇到编译器给我们这样的警告:ThisHandlerclassshouldbestaticorleaksmightoccur造成这个警告的原因是handler持有外层类(Activity等)的

Android之EventBus概述及源码解析(雷惊风) 前段时间公司在项目中用到了Android三方开源库—EventBus。一直没时间总结,只能抽周末点时间总结一下,其中也借鉴了一些前辈的智慧。好了废话不多

Android Camera探究之路——起步 AndroidCamera探究之路——起步Camera在手机中有着举足轻重的地位,不管是二维码还是照片、识别,都离不开摄像头,本文将对Android中的Camera进行全面解析

标签: [置顶]公主大人接下来是拷问时间31

本文链接地址:https://www.jiuchutong.com/biancheng/374359.html 转载请保留说明!

上一篇:Android笔记(Android笔记本)

下一篇:android hander如何避免内存泄露(android的handler)

  • 什么时候计提企业所得税
  • 稳岗返还入什么科目
  • 报税软件费用可以退吗
  • 计提代扣个人工会经费怎么做账
  • 存款利息收入增值税是免税还是不征税
  • 出口企业退税分录
  • 营业执照注销还需要交钱吗
  • 临时营业执照有效期多久
  • 增值税专票怎么抵扣
  • 会计核算的具体流程
  • 材料已入库后收货怎么写
  • 委托加工模具的费用计入什么科目?
  • 低值易耗品按三年摊销吗
  • 纳税人和征税对象的区别
  • 开出增值税普通发票需要交税吗
  • 企业交税的钱用在哪里
  • 收到个人实收资本怎么做账
  • 废品损失科目月末
  • 收到未到期的银行承兑汇票会计分录
  • 一般纳税人收到专票怎么做分录
  • 企业出口产品条件和流程
  • 企业外购材料的入账价值包括
  • 固定资产清理怎么做账务处理出售
  • 专利权转销处理方案
  • 土地租赁摊销年限按合同年限
  • 网络端口被占用怎么解决
  • 施工费增值税专用发票税率
  • 苹果笔记本下载的itunes在哪
  • 政府补助计量的基础是
  • 预付款挂账什么意思
  • 通行证普通发票放在凭证哪里
  • 财政预算单位可以既是省级又是中央
  • 废旧物资经营单位增值税税率
  • web前端开发期末试题及答案
  • 深度学习模型部署综述(ONNX/NCNN/OpenVINO/TensorRT)
  • c语言设计酒店管理系统
  • formdata方法
  • oc底层原理
  • 权益法转成本法非同一控制下为什么不公允
  • 数量金额式账页图片
  • 发票金额大于付款金额怎么做账
  • 物流辅助服务属于什么科目
  • sqlserver2005导出数据
  • 一般纳税人的商业保险可以开票吗
  • 增值税进项税没抵扣
  • 不动产登记机构应当履行下列职责?
  • 跨月开票的业务怎么做
  • 税后利润分配还要交税
  • 土地使用税减免税优惠
  • 什么叫递延收益和其他收益
  • 开发票没有银行回单可以入帐吗?
  • 净资产收益率多少才是好股
  • 预付账款的会计处理
  • 员工办理健康证介绍信模板
  • 企业如何设置预缴税款
  • 综合所得的个人所得税有哪些筹划技巧
  • 新公司建立 需要先做哪行
  • mysql挂了怎么排查
  • sql servererror40
  • unix的文件系统采用
  • ubuntu系统中安装微信步骤
  • Win10系统无法启动,如何修复
  • 系统升级后c盘空间小了
  • 怎么配置nodejs
  • jquery设置title
  • python数据验证
  • linux包含
  • javascript包含哪三大部分
  • 原生js常用的方法
  • jquery表单事件验证表单
  • js继承的概念
  • jquery绑定数据
  • 增值税发票的发票号码和发票代码
  • 税收征管法规定税务机关在税款征收中可以采取哪些措施
  • 什么是总分机构汇总纳税
  • 企业所得税改革
  • 个税汇算清缴申报方式选哪个
  • 失业金存在多个账户
  • 上海个税100万元工资多少
  • 广州代理记账公司注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设