2019独角兽企业重金招聘Python工程师标准>>>

1)只显示网络图片

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="dujun.king.urlgetimage.MainActivity" ><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="196dp"android:src="@drawable/ic_launcher" /></RelativeLayout>

b)MainActivity.java

package dujun.king.urlgetimage;import java.io.InputStream;
import java.net.URL;import android.app.Activity;
import android.graphics.BitMap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;public class MainActivity extends Activity {Bitmap bitmap;ImageView imageview;Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {if (msg.what==0x9527) {//显示从网上下载的图片imageview.setImageBitmap(bitmap);}}          };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageview=(ImageView)findViewById(R.id.imageView1);     //创建并启动一个新线程用于从网络上下载图片new Thread(){@Overridepublic void run() {try {//创建一个url对象URL url=new URL("http://www.baidu.com/img/bdlogo.png");//打开URL对应的资源输入流InputStream is= url.openStream();//从InputStream流中解析出图片bitmap = BitmapFactory.decodeStream(is);//  imageview.setImageBitmap(bitmap); //发送消息,通知UI组件显示图片handler.sendEmptyMessage(0x9527);//关闭输入流is.close();} catch (Exception e) {e.printStackTrace();}}          }.start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up Button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

c)AndroidMainifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="dujun.king.urlgetimage"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="15"android:targetSdkVersion="15" /><!-- 访问Internet权限 --><uses-permission android:name="android.permission.INTERNET"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:Label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity></application></manifest>

2)如果我们要显示并下载网络图片,只需要将MainActivity.java文件修改如下:

package dujun.king.urlgetimage;import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;public class MainActivity extends Activity {Bitmap bitmap;ImageView imageview;Handler handler=new Handler(){@Overridepublic void handleMessage(Message msg) {if (msg.what==0x9527) {//显示从网上下载的图片imageview.setImageBitmap(bitmap);}}          };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageview=(ImageView)findViewById(R.id.imageView1);     //创建并启动一个新线程用于从网络上下载图片//这里必须新起一个线程,Android后面的版本中,不允许在主线程中联网new Thread(){@Overridepublic void run() {try {//创建一个url对象URL url=new URL("http://www.baidu.com/img/bdlogo.png");//打开URL对应的资源输入流InputStream is= url.openStream();//从InputStream流中解析出图片bitmap = BitmapFactory.decodeStream(is);//  imageview.setImageBitmap(bitmap); //发送消息,通知UI组件显示图片handler.sendEmptyMessage(0x9527);//关闭输入流is.close();//------------------------------//下载网络图片//再次打开资源流is = url.openStream();//打开手机对应的输出流//存放在手机中,并命名为baidulogo.pngOutputStream os = openFileOutput("baidulogo.png", MODE_WORLD_READABLE);byte[] buff = new byte[1024];int len = 0;//因为网络下载一般不可能一次下载完毕,我们将每次下载好的有效数据写入while ((len = is.read(buff)) > 0){os.write(buff,0,len);}//关闭流is.close();os.close();} catch (Exception e) {e.printStackTrace();}}          }.start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);}
}

转载于:https://my.oschina.net/ningbazheng/blog/600232

URL对象中前而几个方法都非常容易理解,而该对象提供的openStream()可以读取该 URL资源...相关推荐

  1. 如何定义一个类对象并用next()的方法使用_深入理解-可迭代对象、迭代器(20个为什么)...

    2019-06-16 深入理解可迭代对象.迭代器 什么是迭代器模式? 当扫描内存中放不下的数据集时,要找到惰性获取数据项的方式,即按需一次获取一个数据项,这就是迭代器模式 迭代器构成? python没 ...

  2. java对象赋值给数组_带你深入的理解数组和对象的解构赋值。

    es6提供了一个非常好的特性,即变量的解构赋值.从而我们可以方便的从数组和对象中提取数据并将它们赋值给变量.这是非常必要的.先来看在这个新特性发布之前我们是如何从数组中提取数据的.如下: let nu ...

  3. dom对象常用的属性和方法有哪些?

    dom对象常用的属性和方法有哪些? 一.总结 一句话总结: 1.document属性和方法:document的属性有head,body之类,方法有各种获取element的方法 2.element的属性 ...

  4. java讲对象放在常量池的方法_java的常量池里面都放了些神马东西

    展开全部 理解Java常量池 JVM运行时数据区的内e69da5e6ba9062616964757a686964616f31333264656233存模型由五部分组成: [1]方法区 [2]堆 [3] ...

  5. ajax的url怎么将后缀补上_球形门锁怎么拆装?球形门锁安装的方法都包括哪些?

    目前很多人都会买球形门锁,在购买了球形门锁后需要拆下来安装上去,避免造成麻烦,球形门锁怎么拆装?当家里的球形门锁坏了后需要重新进行安装的时候,往往要用合适的方法才行,一般球形门锁安装的方法都包括哪些? ...

  6. 用于将带有查询字符串的复杂对象传递到Web API方法的自定义模型绑定器

    目录 介绍 查询复杂对象的字符串字段 使用和测试FieldValueModelBinder类 FieldValueModelBinder如何工作? 获取源字段和值 将字段部分与对象属性匹配 解析枚举类 ...

  7. Ajax--概述、xhr对象的常用属性和方法、xhr的常用事件、xhr对象发送POST请求、xhr对象发送GET请求、xhr对象的兼容性问题、数据交换格式(XML、JSON)

    一.概述 1.1 发展历程 在开始之前先来看一下Ajax的工作原理吧,如下图所示: Ajax全称Asynchronous javascript and xml(异步 JavaScript 和 XML) ...

  8. 从输入 URL 到页面加载完成中间都经历了什么

    摘要 目录 1.chrome浏览器资源加载时序分析 2.w3c提供的接口performance.timing分析 3.一个完整的URL 解析过程细分介绍 3.1.缓存相关 3.1.1.URL解析 3. ...

  9. 前端面试总结(2)--从输入URL到页面加载完成,都发生了什么

    目录 序言 从输入URL到页面加载完成,都发生了什么 1. 一个极其粗糙且简化的流程 2. 每个步骤都只是摘要 2.1 浏览器中输入URL 2.1.1 URL的概念 2.1.2 浏览器对URL的长度限 ...

  10. java判断一个对象是否为空_Java中判断对象是否为空的方法的详解

    首先来看一下工具StringUtils的判断方法: 一种是org.apache.commons.lang3包下的: 另一种是org.springframework.util包下的.这两种StringU ...

最新文章

  1. Android maps应用
  2. Nginx之简介与安装(一)
  3. 初识Android应用程序的五大基本组件
  4. 基于OAuth2的认证(译)
  5. [费用流]数字配对,新生舞会
  6. java 中创建数据端口_java 如何在服务器端用socket创建一个监听端口,并对接受的数据进行处理,端口号为3333,请高手指点一下...
  7. VSCode中使用vue项目ESlint验证配置
  8. Spring Boot 2.x 集成 SLF4j + log4j2 日志框架
  9. 本地idea运行spark,A master URL must be set in your configuration
  10. 将已经汉化了的Protel 99 SE整回英文原版
  11. Origin自动寻峰
  12. 计算机中的逻辑与或非,与或非运算(与或非逻辑运算口诀)
  13. [转] 理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
  14. Adobe又逆天!不用机器学习,用13.5M软件把《长安十二时辰》变成水墨动画
  15. python tox
  16. libero-soc许可证申请和环境配置
  17. word中,解决插入形状后固定位置不变。
  18. 【WMCA】《Biometric Face Presentation Attack Detection with Multi-Channel Convolutional Neural Network》
  19. 第一章 教育基础(01 教育与教育学的产生与发展)
  20. ROS教程:视觉传感器使用漫谈

热门文章

  1. UVA - 10635 —— Prince and Princess
  2. SQL window身份登陆 SQL server不能登陆
  3. Silverlight初级教程-概述
  4. JMeter——JMeter如何进行汉化
  5. 代码审查(咳咳......又降温了啊....!!!!)
  6. 拖拽图片到另一个div里
  7. 查看name的状态,是属于active还是standby
  8. PHP接入芝麻信用续。
  9. 描述cookie,sessionstroage,localstrage的区别
  10. c++模板函数实例化的偏序机制