android图片下载器

页面布局

<span style="white-space:pre">  </span><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:text="图片下载器" android:gravity="center"android:id="@+id/title"android:textSize="30sp"/><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/title"android:text="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc765.png"android:id="@+id/url"/><Buttonandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/button"android:layout_below="@id/url"android:text="链接"android:onClick="onClick"/><ImageViewandroid:layout_below="@id/button"android:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/picture"android:src="@drawable/ic_launcher"android:scaleType="center"/>

页面布局使用相对布局RelativeLayout,有四个组件:

TextView:标题

EditText:输入url

Button:执行图片获取

ImageView:展示图片

图示

主页面Java代码

 public Button btn;public EditText et;public ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.button);et = (EditText) findViewById(R.id.url);iv = (ImageView) findViewById(R.id.picture);}

onCreate()方法获取XML组件的id

onClick(View v)方法监听按钮事件

public void onClick(View v){if(v.getId() == R.id.button){final String path = et.getText().toString().trim();if(path == null || "".equals(path)){//检查数据合法性Toast.makeText(getApplicationContext(), "图片地址不能为空", Toast.LENGTH_SHORT).show();return ;}Toast.makeText(getApplicationContext(), "图片加载中", Toast.LENGTH_SHORT).show();//http为耗时操作,不可以在UI线程(主线程)中运行程序new Thread(new Runnable(){public void run() {try{final Bitmap bitmap = ImageUtil.getImageURLGet(path);runOnUiThread(new Runnable(){public void run() {iv.setImageBitmap(bitmap);}});}catch(Exception e){e.printStackTrace();runOnUiThread(new Runnable(){public void run() {Toast.makeText(getApplicationContext(), "图片加载失败", Toast.LENGTH_SHORT).show();};});}}}).start();}}

按钮事件内部检验是否为链接按钮,检查数据合法性,url是否为空,接着获取互联网上的图片,然后用runOnUiThread()方法去把获取到的图片呈现出来,主线程是UI线程,负责UI处理,不支持耗时操作,所以要创建一个线程去访问www,下载好了图片后,呈现出来,如果出现异常,报“图片加载失败”错误。

访问互联网

public class ImageUtil {public static Bitmap getImageURLGet(String path)throws Exception{URL url = new URL(path);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setRequestMethod("GET");//GET POSTconn.setConnectTimeout(5000);//设置超时时间int status = conn.getResponseCode();if(status == 200){InputStream inputStream = conn.getInputStream();byte[] bytes = StreamUtil.getBytesByInputStream(inputStream);Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);return bitmap;}throw new RuntimeException("超時");}}

链接一个URL路径,获取链接,设置超时时间,获取相应码,200代表成功,获取输入流,接收图片数据信息,创建一个Bitmap,返回。

Java获取图片数据信息

<span style="white-space:pre">  </span>public static byte[] getBytesByInputStream(InputStream in){ByteArrayOutputStream bos = new ByteArrayOutputStream();try{byte[] bytes = new byte[2048];int len = 0;while( (len = in.read(bytes))!= -1 ){bos.write(bytes,0,len);}}catch(Exception e){e.printStackTrace();}return bos.toByteArray();}

最后别忘了加上网络访问权限:

<uses-permission android:name="android.permission.INTERNET"/>
链接一张百度的图片

图示效果

android图片下载器相关推荐

  1. Android实现网页图片下载器

    Android实现网页图片下载器 网页图片下载器是配合神马笔记图像画廊功能使用的一个工具. 实现了抓取并下载网页页面图片功能. 实现过程: 使用WebView加载网页 获取网页的原始HTML内容 使用 ...

  2. Android 图片压缩器

    概述 Android 图片压缩器:一款高效的图片压缩器库,支持批量压缩,异步压缩.多线程多任务压缩,压缩比设置等特性. 详细 代码下载:http://www.demodashi.com/demo/12 ...

  3. 虹影图片下载器(Preview)

    虹影图片下载器,支持从image.google.com.image.baidu.com.image.yahoo.com.image.tom.com自动下载搜索到的图片 download 转载于:htt ...

  4. 图片下载器爬虫 ItemLoader

    思路 http://www.meizitu.com/a/more_1.html 图片下载器爬虫 1.使用到的技术:scrapy ,requests(下载图片),ItemLoader 2.项目的创建:s ...

  5. java爬虫写一个百度图片下载器

    文章目录 img_download 1.0 看看效果吧 2.0 了解一下 "图片下载器软件" 目录结构 3.0 如何使用? 4.0 源码剖析 5.0 项目地址 6.0 写在最后的话 ...

  6. linux用命令下载图片,巧用linux命令做图片下载器

    在平时上网的时候,发现有些图片不错,想保存到本地,一个一个的保存确实够费劲的,如果把整个网页都保存了,有些又是自己不需要的,就算下载下来了,还得从上百个网页元素中去筛选,哪些是css文件,哪些是js文 ...

  7. QT--HTTP图片下载器

    QT–HTTP图片下载器 1.http使用前提 QT += core gui network //必须加上network 2.必须头文件 #include <QNetworkAccessMana ...

  8. Extreme Picture Finder(网络图片下载器)官方中文版V3.53.3 | 下载网页图片的软件 | 图片助手批量图片下载器

    Extreme Picture Finder 是一款功能强大的集网络图片下载器软件和网页视频下载软件于一体的综合性互联网素材采集工具,能帮助广大用户自动下载并保存几乎所有互联网上面的图像.视频.音乐以 ...

  9. 用python爬虫制作图片下载器(超有趣!)

    这几天小菌给大家分享的大部分都是关于大数据,linux方面的"干货".有粉丝私聊小菌,希望能分享一些有趣的爬虫小程序.O(∩_∩)O哈哈,是时候露一手了.今天给大家分享的是一个适合 ...

最新文章

  1. SQL Server 2005 18452登录错误 的解决方法
  2. VMware 虚拟化编程(12) — VixDiskLib Sample 程序使用
  3. c++:opencv的安装和配置
  4. EDP项目结构规范心得
  5. 数据库:计算地球上两个坐标点之间里程
  6. Mybatis报错:nested exception is org.apache.ibatis.binding.BindingException: Parameter ‘XXX‘ not found
  7. netflix_学习Netflix管理员–第1部分
  8. 我要嫁给一个程序员你们怎么看?
  9. 安装VS2008关于解决磁盘已满问题方案.
  10. curl basic 认证
  11. 从线报群看短链接技术
  12. 懒牛人脉管家 v4.4.5
  13. linux gmac驱动分析,以太网驱动流程浅析(一)-ifconfig主要流程
  14. 汇编----正确区分LJMP、AJMP、SJMP、JMP跳转指令
  15. google 浏览器 常用插件
  16. 有道云笔记linux使用教程,我是这么用有道云笔记的!
  17. nosqlbooster 破解free
  18. 俄勒冈之旅_欢迎美好的一天俄勒冈观众-消灭糖尿病2007
  19. Robust stochastic frontier analysis
  20. 音乐格式转换器哪个好

热门文章

  1. redis保存下来,自己慢慢享用
  2. 在网站上添加百度搜索
  3. opencv-图形直方图(calcHist函数)详解(C++)
  4. 安卓图像处理(二)入门需求以及代码演示
  5. 平面原型设计工具-Adobe AI入门
  6. Kafka Protocal Guide
  7. 可爱二次元人物图的转换实现(利用opencv滑动条)
  8. android实现对apk资源文件整体替换
  9. win8.1禁用驱动程序强制签名设置教程
  10. 【学习】日期函数:5、计算用户的平均次日留存率