文档章节

android 通过网络图片路径查看图片

ht896632
 ht896632
发布于 2016/03/02 14:07
字数 319
阅读 4
收藏 0
点赞 1
评论 0

1.在项目清单中添加网络访问权限

<!--访问网络的权限-->
<uses-permission android:name="android.permission.INTERNET"/>
2.获取网络图片数据

/**
	 * 获取网络图片的数据
	 * @param path 网络图片路径
	 * @return
	 * @throws Exception 
	 */
	public static byte[] getImage(String path) throws Exception {
		URL url=new URL(path);
		HttpURLConnection conn=(HttpURLConnection)url.openConnection();//得到基于HTTP协议的连接对象
		conn.setConnectTimeout(5000);//设置超时时间
		conn.setRequestMethod("GET");//请求方式
		if(conn.getResponseCode()==200){//判断是否请求成功
			InputStream inputStream=conn.getInputStream();
			return read(inputStream);
		}
		return null;
	}
	/**
	 * 读取流中的数据
	 */
	public static byte[] read(InputStream inputStream) throws IOException {
		ByteArrayOutputStream outputStream=new ByteArrayOutputStream();
		byte[] b=new byte[1024];
		int len=0;
		while((len=inputStream.read(b))!=-1){
			outputStream.write(b);
		}
		inputStream.close();
		return outputStream.toByteArray();
	}
3.处理查看图片的控制

public class NetimageActivity extends Activity {
	private EditText pathText;
	private ImageView imageView;
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        pathText=(EditText)this.findViewById(R.id.imagepath);//图片路径
        imageView=(ImageView)this.findViewById(R.id.imageView);//显示图片控件
        Button button=(Button)this.findViewById(R.id.button);//查看图片按钮
        button.setOnClickListener(new ButtonClickListener());//注册查看图片按钮事件
    }
    /**
     * 处理查看图片按钮事件
     */
    private final class ButtonClickListener implements View.OnClickListener{
    	@Override
    	public void onClick(View v) {
    		//取得图片路径
    		String path=pathText.getText().toString();
    		try {
				//获取图片数据
				byte[] data=ImageService.getImage(path);
				//使用数组的所有数据构建位图对象
				Bitmap bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
				imageView.setImageBitmap(bitmap);//显示图片
			} catch (Exception e) {
				e.printStackTrace();
				Toast.makeText(getApplicationContext(), R.string.error, 1).show();
			}
    	}
    }
}

© 著作权归作者所有

共有 人打赏支持
ht896632
粉丝 35
博文 53
码字总数 31361
作品 0
闵行
高级程序员
Android的快速开发框架,Afinal 0.2.1 发布

Afinal 是一个android的 orm 和 ioc 框架。而且封装了android中的httpClient,使其更加简单易用。使用finalBitmap,无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位...

xiahuawuyu
2012/11/08
0
0
六款值得推荐的android(安卓)开源框架简介【转】

1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求...

hkstar35
2014/07/11
0
0
六款值得推荐的android(安卓)开源框架简介【转】

1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请求的优先级处理 (4) 缓存 (5) 多级别取消请求...

火蚁
2014/07/09
0
1
Android TextView使用HTML处理字体样式、显示图片等

学Android的时候突然想到一个问题:怎么用TextView控件显示带有格式的文字,可否使用Html布局?查了下Android 帮助文档,其提供了android.text.Html类和Html.ImageGetter、Html.TagHandler接...

fyxjsj
2013/09/21
0
1
【转】值得推荐的android开发框架简介

第一个:Afinal 项目地址:https://github.com/yangfuhai/afinal 功能:一个android的ioc,orm框架,内置了四大模块功 能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivi...

kymjs张涛
2014/08/05
0
0
网络请求框架---Volley

去年的Google I/O大会为android开发者带来了一个网络请求框架,它的名字叫做Volley。Volley诞生的使命就是让Android的网络请求更快,更健壮,而且它的网络通信的实现是基于HttpURLConnection...

Jack_1900
2014/08/01
0
2
安卓开发实现背景图片应用于各种尺寸的屏幕且不失真

【原创】安卓开发中,无论是背景图还是按钮图或者其他图,都不希望随着移动设备的改变而失真,如果想要实现背景图片应用于各种尺寸的屏幕且不失真,需要先对图片进行一下处理。 在这里,我使...

bluecoffee
2014/07/04
0
2
检索Android图片库并显示详细信息

这篇文章,我们将学习如何检索并显示媒体库中的图片以及每张图片的详细信息包括名称,ID,路径,大小等等。 关于游标(cursor)不懂的可以看博文:Android中Cursor类的概念和用法 具体实现: ...

Failure
2012/04/16
0
0
TextView使用HTML标签

关于TextView 的富文本实现方式,有2中,一种使用Html来做,一种是使用SpannableString; SpannableString太麻烦了,这里有参考: http://www.chawenti.com/articles/16016.html 关于 TextView使用...

新年
2015/03/13
0
0
GridView加载大量图片卡顿问题

1 在异步加载之前的代码的和普通加载代码一样,只需要在GirdView的Adapter的public View getView(int position, View convertView, ViewGroupparent)方法使用异步加载的方式返回ImageView。 ...

ljrapple
2014/08/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

sleep与wait的区别

Thread.sleep(XXX)方法消耗CPU吗? 这个知识点是我之前认识一直有错误的一个知识点,在我以前的认识里面,我一直认为Thread.sleep(1000)的这一秒钟的时间内,线程的休眠是一直占用着CPU的时间...

码代码的小司机
10分钟前
0
0
20位活跃在Github上的国内技术大牛 leij 何小鹏 亚信

本文列举了20位在Github上非常活跃的国内大牛,看看其中是不是很多熟悉的面孔? 1. lifesinger(玉伯) Github主页: https://github.com/lifesinger 微博:@ 玉伯也叫射雕 玉伯(王保平),...

海博1600
14分钟前
0
0
Mybatis收集配置

一、Mybatis取Clob数据 1、Mapper.xml配置 <resultMap type="com.test.User" id="user"> <result column="id" property="id"/> <result column="json_data" property="jsonData" ......

星痕2018
41分钟前
0
0
centos7设置以多用户模式启动

1、旧版本linux系统修改inittab文件,在新版本执行vi /etc/inittab 会有以下提示 # inittab is no longer used when using systemd. # # ADDING CONFIGURATION HERE WILL HAVE NO EFFECT ON......

haha360
今天
0
0
OSChina 周日乱弹 —— 局长:怕你不爱我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ andonny :分享周二珂的单曲《孤独她呀》 《孤独她呀》- 周二珂 手机党少年们想听歌,请使劲儿戳(这里) @孤星闵月 :没事干,看一遍红楼梦...

小小编辑
今天
192
9
Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
今天
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
11
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
17
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
254
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部