文档章节

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

ht896632
 ht896632
发布于 2016/03/02 14:07
字数 319
阅读 5
收藏 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
粉丝 37
博文 53
码字总数 31361
作品 0
闵行
高级程序员
私信 提问
Android--快速开发框架 afinal

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/51014398 Afinal简介 Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了andro...

sealin
2016/03/30
0
0
Android根据图片Uri获取图片path绝对路径的几种方法【转】

在Android 编程中经常会用到Uri转化为文件路径,如我们从相册选择图片上传至服务器,一般上传前需要对图片进行压缩,这时候就要用到图片的绝对路径。 下面对我开发中uri转path路径遇到的问题...

vetter
2018/09/03
0
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

没有更多内容

加载失败,请刷新页面

加载更多

iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画 程序员取悦女票的正确姿势---Tip1(iOS美容篇) iOS 前台重启应用和清除角标的问题 微信原生提醒对话框3.0 JHLikeButton - 有趣...

Android爱开源
4分钟前
0
0
Yii2使用驼峰命名的形式访问控制器

yii2在使用的时候,访问控制器的时候,如果控制器的名称是驼峰命名法,那访问的url中要改成横线的形式。例如: public function actionRoomUpdate(){//}//访问的时候就要www.test.co...

dragon_tech
6分钟前
0
0
Navicat使用教程:使用Navicat Query Analyzer优化查询性能(第2部分)

下载Navicat Monitor最新版本 Navicat Monitor 是一套安全、简单而且无代理的远程服务器监控工具。它具有强大的功能使你的监控发挥最大效用。受监控的服务器包括 MySQL、MariaDB 和 Percona ...

电池盒
13分钟前
0
0
Python3 读写utf-8文本文件

with open('testRead.txt', 'r', encoding='utf-8') as f: for each_line in f: Passwith open('testWrite.txt', 'w', encoding='utf-8') as f: f.write('写入的内容'......

编程老陆
16分钟前
0
0
Linux syslog相关函数详解

介绍 syslog是Unix系统的日志系统。可以将日志记录在本地系统中。 一个完整的syslong日志包含如下信息:程序模块 | 严重性 | 时间 | 主机名 | 进程名 | 进程ID | 正文。 syslong相关函数 1....

RongJinhui0
20分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部