Andriod 读取网络图片实例代码解析

Android手机上,我们常用ImageView显示图片,我们本章获取网络图片并显示在ImageView中。

一、设计界面

  1、布局文件

  打开res/layout/activity_main.xml文件。

  输入以下代码:

<?xml version="." encoding="utf-"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imagephoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout> 

二、程序文件

  打开“src/com.genwoxue.networkphoto/MainActivity.java”文件。

  然后输入以下代码:

package com.genwoxue.networkphoto;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imView = (ImageView) findViewById(R.id.imagephoto);
String imageUrl = "http://img.baidu.com/img/image/ilogob.gif";
new NetworkPhoto().execute(imageUrl);
}
/* 四个步骤:
* ()onPreExecute(),执行预处理,它运行于UI线程,
* 可以为后台任务做一些准备工作,比如绘制一个进度条控件。
* ()doInBackground(Params...),后台进程执行的具体计算在这里实现,
* doInBackground(Params...)是AsyncTask的关键,此方法必须重载。
* 在这个方法内可以使用 publishProgress(Progress...)改变当前的进度值。
* ()onProgressUpdate(Progress...),运行于UI线程。如果
* 在doInBackground(Params...) 中使用了publishProgress(Progress...),就会
* 触发这个方法。在这里可以对进度条控件根据进度值做出具体的响应。
* ()onPostExecute(Result),运行于UI线程,可以对后台任务的结果做出处理,结果
* 就是doInBackground(Params...)的返回值。此方法也要经常重载,如果Result为
* null表明后台任务没有完成(被取消或者出现异常)。 *
*/
//本案例我们仅使用了()和()
class NetworkPhoto extends AsyncTask<String, Integer, Bitmap> {
public NetworkPhoto() {
}
//doInBackground(Params...),后台进程执行的具体计算在这里实现,是AsyncTask的关键,此方法必须重载。
@Override
protected Bitmap doInBackground(String... urls) {
URL url = null;
Bitmap bitmap = null;
HttpURLConnection conn=null;
InputStream is=null;
try {
url = new URL(urls[]);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
conn = (HttpURLConnection) url.openConnection();
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(conn!=null){
conn.disconnect();
conn=null;
}
if(is!=null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
is=null;
}
}
return bitmap;
}
//onPostExecute(Result),运行于UI线程,可以对后台任务的结果做出处理,结果
//就是doInBackground(Params...)的返回值。
@Override
protected void onPostExecute(Bitmap bitmap) {
// 返回结果bitmap显示在ImageView控件
imView.setImageBitmap(bitmap);
}
}
}

三、配置文件

  打开“AndroidManifest.xml”文件。

  然后输入以下代码:

<?xml version="." encoding="utf-"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.genwoxue.networkphoto"
android:versionCode=""
android:versionName="." >
<uses-sdk
android:minSdkVersion=""
android:targetSdkVersion="" />
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.genwoxue.networkphoto.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> 

注意:需要在AndroidManifest.xml文件中添加权限:

 <uses-permission android:name="android.permission.INTERNET" />
(0)

相关推荐

  • Andriod 获取电池的信息实例代码

    具体代码如下所示: <?xml version="1.0"?> <LinearLayout android:orientation="vertical" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:tools="http://schemas.android.com/tools"

  • Andriod学习教程之滑动布局(14)

    本文实例为大家分享了Andriod滑动布局的具体代码,供大家参考,具体内容如下 MainActivity.java代码: package siso.swipelayoutdemo; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.B

  • 代码从windows下visual studio到andriod平台迁移实现步骤

    代码从windows下visual studio到andriod平台迁移实现步骤: 前言 前言也是迁言,从windows的visual studio 2012平台迁移到Android平台上,需用修改挺多的代码和需用注意地方. 我们当然的平台当初就考虑了其他平台跨平台的应用问题,所以一开始在windows下就是用cmake来完成工程的建立的,cMakeLists.txt文件都做了一些处理,但是此时只是更针对或说首先保证windows下的编译和使用. 谨此做个记录. 1. modify cMakeL

  • Java实现Andriod带看括弧的计算器代码

    废话不多说了,一切尽在代码中,具体代码如下所示: 界面 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_par

  • Andriod 自定义控件之音频条

    今天我们实现一个直接继承于View的全新控件.大家都知道音乐播放器吧,在点击一首歌进行播放时,通常会有一块区域用于显示音频条,我们今天就来学习下,播放器音频条的实现. 首先我们还是先定义一个类,直接继承于View,并重写它的构造方法,并初始化一个画笔,这和上一节是同样的道理.直接贴出代码: public class AudioBar extends View{ private Paint mTextPaint; public AudioBar(Context context) { this(co

  • Andriod 资源文件之存取操作

    废话不多说了,直接给大家贴代码了.具体代码如下所述: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="mat

  • Andriod开发中常见问题

    本文为大家总结了Andriod开发中常遇到的问题,供大家学习,具体内容如下 1.Andriod中布局中引用布局的问题 (使用如下方法即可,布局中引用布局可以起到节省资源的问题) <LinearLayout> <include layout="@layout/buttom"> </LinearLayout> 2.如何判断你的手机版本是不是4.0以上 if(Android.os.Build.VERSION.SDK_INT>10) 3.屏幕切换问题和

  • Andriod开发中引入jar包的正确方式介绍

    andriod中如果引入jar包的方式不对就会出现一些奇怪的错误. 工作的时候恰好有一个jar包需要调用,结果用了很长时间才解决出现的bug. 刚开始是这样引用的(eclipse): 右键工程,Build path,java build path, 选择libraries,在右边的按钮中点击"Add External JARs", 然后选择合适的jar包(大部分人应该会这样做). 结果控制台立刻报错:conversion to dalvik format failed with err

  • Andriod arcgis保存Mapview为图片的实例代码

    废话不多说了,直接给大家贴代码了,具体代码如下所述: /** * 把一个View的对象转换成bitmap */ private Bitmap getViewBitmap(MapView v) { v.clearFocus(); v.setPressed(false); //能画缓存就返回false boolean willNotCache = v.willNotCacheDrawing(); v.setWillNotCacheDrawing(false); int color = v.getDr

  • Andriod 读取网络图片实例代码解析

    Android手机上,我们常用ImageView显示图片,我们本章获取网络图片并显示在ImageView中. 一.设计界面 1.布局文件 打开res/layout/activity_main.xml文件. 输入以下代码: <?xml version="." encoding="utf-"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu

  • AngularJs表单验证实例代码解析

    常用的表单验证指令如下详情: 1. 必填项验证 某个表单输入是否已填写,只要在输入字段元素上添加HTML5标记required即可: <input type="text" required /> 2. 最小长度 验证表单输入的文本长度是否大于某个最小值,在输入字段上使用指令ng-minleng= "{number}": <input type="text" ng-minlength="5" /> 3.

  • Java之Spring注解配置bean实例代码解析

    前面几篇均是使用xml配置bean,如果有上百个bean,这是不可想象的.故而,请使用注解配置bean !!! [1]注解类别 @Component : 基本注解, 标识了一个受 Spring(点击这里可以下载<Spring应用开发完全手册>) 管理的组件 @Repository : 标识持久层组件 @Service : 标识服务层(业务层)组件 @Controller : 标识表现层组件 Spring 能够从 classpath 下自动扫描, 侦测和实例化具有特定注解的组件. 对于扫描到的组

  • JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)

    最近做了个项目,其中有项目需求是要实现跑马灯抽奖效果,实现此功能主要用到js相关知识,废话不多说,感兴趣的朋友可以阅读下全文. 开始之前先来看上篇文章遗漏的两个问题和几个知识点,是自己重构的过程中需要用到的: 1.移动端1px像素线的问题 对于设计师给我的手机端网页的设计稿都是2倍图.按照道理来说,在写网页的时候,所有对象的实际尺寸都是会除2.但是对于1像素的线呢? 先来看两张图,设计稿的效果: 在三星 S4下的实际显示效果: 可以看到这个时候1px的线竟然显示不出来了.这个问题是跟 S4手机的

  • Android利用ZXing扫描二维码的实例代码解析

    相关阅读: Android开发框架之自定义ZXing二维码扫描界面并解决取景框拉伸问题 此项目源码地址:请点击这里 看一下zxing的项目结构,我这里直接拿过来用的 看一下扫码的activity: package com.fanyafeng.barcode.activity; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle

  • JavaScript实现跑马灯抽奖活动实例代码解析与优化(二)

    在上篇文章给大家介绍了JavaScript实现跑马灯抽奖活动实例代码解析与优化(一),既然是要编写插件.那么叫做"插件"的东西肯定是具有的某些特征能够满足我们平时开发的需求或者是提高我们的开发效率.那么叫做插件的东西应该具有哪些基本特征呢?让我们来总结一下: 1.JavaScript 插件一些基本特征: 配置一定要简单 插件中定义的变量不污染全局变量: 同一段代码可以在不同的地方复用: 用户可以自定义自己功能参数: 具有销毁变量和参数的功能: 如果按照以上的几个特征来写插件的话,我们可

  • jQuery动态增减行的实例代码解析(推荐)

    先给大家展示下效果图: 这是没有增加时的界面: 增加后的界面: 删除后的界面: 原因分析: 不擅长jquery和JavaScript 场景: 代码如下: <table class="table table-bordered"> <thead> <tr> <th style="width: 10px">輪次</th> <th style="width: 100%">比賽時間&l

  • JavaScript Base64 作为文件上传的实例代码解析

    例如我们用某些 裁剪插件 得到的图片是 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBFB/ KEAUFFR0Cbng3nQPw68ArZdAlOZppPFIBhH5EAB8b+Tlt9MYQ6i1BuqFaq1CKSVcxZ2Acs6406

  • Android 滑动拦截实例代码解析

    废话不多说了,直接给大家贴代码了,具体代码如下所示: package demo.hq.com.fby; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android.widget.LinearLayout; /** * Created by huqing on 2016/12/7.

  • Android sd卡读取数据库实例代码

    Android sd卡读取数据库实例代码 前言: 本文主要给大家讲解如何利用Android SD卡读取数据库,提供一些代码如下.先在 Manifest 里添加权限: <span style="font-size:16px;"><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name=

随机推荐