• Android应用开发基础篇(15)URL(获取指定网址里的图片)


    一、概述

          URL,说白了就是一个网络地址(网址),通常一个网址里包含很多内容,这里要讲的不是如何从一个包括很多内容(比如很多图片)的网址里找到自己感兴趣的内容(比如说某一张图片),而是从一个带有图片格式(.jpg、.png、.bmp等)后缀的网址里获取该图片,也就是说该网址里只有一张图片。


    二、要求

         从指定的网址里获取图片并显示出来。


    三、实现

         新建工程MyURL,修改main.xml文件,在里面添加一个ImageView,如下:

     1 <?xml version="1.0" encoding="utf-8"?>
    2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3 android:layout_width="fill_parent"
    4 android:layout_height="fill_parent"
    5 android:orientation="vertical" >
    6
    7 <ImageView
    8 android:id="@+id/img"
    9 android:layout_width="fill_parent"
    10 android:layout_height="fill_parent"
    11 />
    12
    13 </LinearLayout>

    修改MyURLActivity.java文件,主要是实例化URL对象,接着获取URL对象的输入流,再将该输入流解码成图片,最后把该图片显示出来。完整的内容如下:

     1 package com.nan.url;
    2
    3 import java.io.IOException;
    4 import java.io.InputStream;
    5 import java.net.MalformedURLException;
    6 import java.net.URL;
    7
    8 import android.app.Activity;
    9 import android.graphics.Bitmap;
    10 import android.graphics.BitmapFactory;
    11 import android.os.Bundle;
    12 import android.widget.ImageView;
    13
    14 public class MyURLActivity extends Activity
    15 {
    16 private ImageView mImageView = null;
    17 private URL mURL = null;
    18 private Bitmap mBitmap = null;
    19 private InputStream mInputStream = null;
    20
    21 /** Called when the activity is first created. */
    22 @Override
    23 public void onCreate(Bundle savedInstanceState)
    24 {
    25 super.onCreate(savedInstanceState);
    26 setContentView(R.layout.main);
    27
    28 mImageView = (ImageView)this.findViewById(R.id.img);
    29
    30 try {
    31 //图片地址
    32 mURL = new URL("http://www.android.com/images/sxsw-promo.png");
    33 } catch (MalformedURLException e) {
    34 // TODO Auto-generated catch block
    35 e.printStackTrace();
    36 }
    37
    38 try {
    39 //获得URL的输入流
    40 mInputStream = mURL.openStream();
    41 } catch (IOException e) {
    42 // TODO Auto-generated catch block
    43 e.printStackTrace();
    44 }
    45 //解码输入流
    46 mBitmap = BitmapFactory.decodeStream(mInputStream);
    47 //显示图片
    48 mImageView.setImageBitmap(mBitmap);
    49
    50 try {
    51 //关闭输入流
    52 mInputStream.close();
    53 } catch (IOException e) {
    54 // TODO Auto-generated catch block
    55 e.printStackTrace();
    56 }
    57
    58 }
    59
    60 }

    最后,修改AndroidManifest.xml文件,加入访问网络的权限:

    1 <uses-permission android:name="android.permission.INTERNET"/>

    运行该程序:



  • 相关阅读:
    shell进行mysql统计
    java I/O总结
    Hbase源码分析:Hbase UI中Requests Per Second的具体含义
    ASP.NET Session State Overview
    What is an ISAPI Extension?
    innerxml and outerxml
    postman
    FileZilla文件下载的目录
    how to use webpart container in kentico
    Consider using EXISTS instead of IN
  • 原文地址:https://www.cnblogs.com/lknlfy/p/2389190.html
Copyright © 2020-2023  润新知