开源项目smartImageView
在https://github.com/网址上可以下载很多开源项目源代码
smartImageView继承了安卓的ImageView,增强了它的功能,例如直接通过url显示图片(内部使用线程去GET图片)
使用方法
1、把smartImageView的源代码/src/com文件夹拷到自己的代码的src目录中
2、布局文件中添加一个smartImageView控件,注意要写全名(包含包名)
<--包名要写完整--><com.itheima.smartimageview.SmartImageViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/iv" />
3、获取控件并调用image.setImageUrl(item.getImage())方法加载图片
smartImageView smart_img = (smartImageViewfindViewById(R.id.smart_img);
//直接通过url显示图片
//smart_img.setImagUrl("http://img0.bdstatic.com/img/image/imglog_detailHLT.gif");
//直接通过url显示图片,如果url图片得不到,则显示本地图片
smart_img.setImagUrl("http://img0.bdstatic.com/img/image/imglog_detailHLT.gif",R.drawable.mydefault);
代码示例
package com.itheima.custom.smartimgview;import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.widget.ImageView;/*** 自定义 smartimageview* * @author Administrator**/
public class MySmartImageView extends ImageView {private Bitmap bitmap;//定义一个 handlerprivate Handler handler = new Handler(){//重写handleMessage 方法 public void handleMessage(android.os.Message msg) {int msgg = msg.what;switch (msgg) {case 0:MySmartImageView.this.setImageBitmap(bitmap);break;case 1:int errorResource = (Integer) msg.obj;MySmartImageView.this.setImageResource(errorResource);default:break;}};};public MySmartImageView(Context context, AttributeSet attrs) {super(context, attrs);}// 设置 图片的url public void setImagUrl(final String path){new Thread(){public void run() {try {URL url = new URL(path);//打开一个url连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection();//设置conn 的参数 conn.setRequestMethod("GET");conn.setConnectTimeout(5000);//获取服务器返回的状态码int code = conn.getResponseCode();if (code == 200) { //200 请求服务器资源全部返回成功 //206 请求部分服务器资源返回成功 InputStream inputStream = conn.getInputStream(); //获取服务器返回的数据 //获取到bitmap bitmap = BitmapFactory.decodeStream(inputStream);handler.sendEmptyMessage(0); //发送一条消息 }} catch (Exception e) {e.printStackTrace();}};}.start();}// 设置 图片的url public void setImagUrl(final String path,final int errorResource){new Thread(){public void run() {try {URL url = new URL(path);//打开一个url连接 HttpURLConnection conn = (HttpURLConnection) url.openConnection();//设置conn 的参数 conn.setRequestMethod("GET");conn.setConnectTimeout(5000);//获取服务器返回的状态码int code = conn.getResponseCode();if (code == 200) { //200 请求服务器资源全部返回成功 //206 请求部分服务器资源返回成功 InputStream inputStream = conn.getInputStream(); //获取服务器返回的数据 //获取到bit map bitmap = BitmapFactory.decodeStream(inputStream);handler.sendEmptyMessage(0); //发送一条消息 }else {Message msg = Message.obtain();msg.obj = errorResource;msg.what = 1;handler.sendMessage(msg);}} catch (Exception e) {e.printStackTrace();}};}.start();}}
开源项目smartImageView相关推荐
- GitHub上的“金矿”(236个Python开源项目,涵盖了15个领域)
人生苦短,越来越多的人,都开始用Python了. 但寻找好的项目资源,费时又费力,成了头号难题. 现在,好消息来了.最近,有人在GitHub上放了一座"金矿". 目前里面有236个 ...
- 【radar】毫米波雷达相关开源项目代码汇总(工具箱、仿真、2D毫米波检测、融合、4D毫米波检测、分割、SLAM、跟踪)(6)
[radar]毫米波雷达相关开源项目代码汇总(工具箱.仿真.2D毫米波检测.融合.4D毫米波检测.分割.SLAM.跟踪)(6) Toolbox pymmw https://github.com/m6c ...
- 使用git更新github上的开源项目
以前经常在github上下载一些开源项目,比如crtmpserver, nginx, apache traffic server, ffmpeg等, 一直不知道怎么同步更新到当前的最新源码. 我以前的 ...
- OpenDigg前端开源项目月报201704
由OpenDigg 出品的前端开源项目月报第一期来啦.我们的前端开源月报集合了OpenDigg一个月来新收录的优质前端开源项目,方便前端开发人员便捷的找到自己需要的项目工具. reactide Rea ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件 下载地址 ...
- 人工智能和机器学习领域有哪些有趣的开源项目
人工智能和机器学习领域有哪些有趣的开源项目? 投递人 itwriter 发布于 2014-12-02 11:21 评论(0) 有20人阅读 原文链接 [收藏] « 本文简要介绍了 10 款 ...
- huggingface实操_盘点2018年度GtiHub开源项目TOP 25
本文作者 Pranav Dar 是 Analytics Vidhya 的编辑,对数据科学和机器学习有较深入的研究和简介,致力于为使用机器学习和人工智能推动人类进步找到新途径.2018 这一年中,作者在 ...
- python潜力开源项目_比较了1000多个Python开源项目,精选出这34个
传智播客博学谷 微信号:boxuegu- get最新最全的IT技能 免费领取各种视频资料 在过去的一年里,Mybridge比较了近1000个的Python开源库,并从中评选出34个最有用的工具来帮助你 ...
- python开源库推荐_推荐5个值得关注的Python开源项目
原标题:推荐5个值得关注的Python开源项目 今天小编看到了五个开源项目,觉得还错,推荐给大家. 1.Wagtail CMS Wagtail是一个基于Django的CMS系统 它拥有优质的用户体验 ...
- 中国互联网公司开源项目调研报告
近年来,开源技术得到越来越多的重视,微软收购GitHub.IBM收购红帽,都表明了开源的价值.国内公司也越来越多的参与开源,加入开源基金会/贡献开源项目.但是,它们到底做得如何呢?为此InfoQ统计了 ...
最新文章
- Java高级特性增强-多线程
- Nature:新聘“诺奖级泰斗”研究揭示大脑中执行不同认知功能环路之间的协同作用
- c++多线程队列 类对象
- 经典案例鸢尾花分类, 在Keras中使用sklearn调参
- jQuery操作标签--样式、文本、属性操作, 文档处理
- Win32ASM学习[23]:RadASM快捷键
- 二十三种设计模式详解
- java限制一个接口的执行时间_Java 并发编程:任务执行器 Executor 接口
- slam无人车清除地图残影
- DialogBox和DialogBoxParam函数
- VS2019搭建C语言开发环境(图文教程)
- laravel 框架使用hdjs 实现富文本编辑器功能
- 站群服务器找11火星软件
- gpu内存大小 android,Android性能测试(内存、cpu、fps、流量、GPU、电量)——adb篇...
- 美国市场数据分析初创公司Simon Data获2000万美元融资
- s8 android 8.0变化,三星s8何时能更新android8.0
- 金融科技大数据产品推荐:金融魔方 ---专业的金融SaaS服务平台
- win10右键菜单发送到的选项为空怎么解决
- 如何让win XP实现自动登陆
- Windows 上的网络通信编程