Android从网上获取图片的简单示例

其实我也是个Android新手,有什么写的不对的地方,大家可以提出来。这里主要写的是Android从网上获取图片的几种写法。

  1. 首先是布局文件,新建一个pic.xml文件:
<?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="match_parent" android:orientation="vertical" >

    <ImageView android:id="@+id/iv" android:layout_width="match_parent" android:layout_height="match_parent" />
</LinearLayout>

2 . 然后是AndroidMainFest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.test001" android:versionCode="1" android:versionName="1.0" >

    <uses-sdk  android:minSdkVersion="11" android:targetSdkVersion="19" />
        <!--主要是这里加一个上网权限-->
    <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.example.test001.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>

3 .然后就是MainActivity文件了:

package com.example.test;

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.widget.ImageView;

public class MainActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.pic);
        new Thread(new Runnable() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                //找到控件
                ImageView iv = (ImageView) findViewById(R.id.iv);
// /* 
// * 方法一:
                try {
                        //声明并实例化url,http://...是网上图片地址
                        URL url = new URL("http://img2.imgtn.bdimg.com/it/u=1985131349,3596986963&fm=23&gp=0.jpg");
                        /*在android.graphics包中有一个Drawable类, * 它是所有可见对象的描述,可以理解为素材类 * createFromStream的第一个参数是InputStream:输入流 * 第二个参数是本地路径,该方法首先是查看本地是否有该图 * 片,若没有则从InputStream输入,可以设置为null。 * * */
                        Drawable drawable = Drawable.createFromStream(url.openStream(), "img.png");
                        //在ImageView上显示图片
                        iv.setImageDrawable(drawable);
                    } catch (MalformedURLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
// */

    /* * 方法二: try { //声明并实例化url,http://...是网上图片地址 URL url = new URL("http://img3.imgtn.bdimg.com/it/u=1219545299,4180981016&fm=23&gp=0.jpg"); //URLConnection使用的是java.net中的类,属于标准的java接口。 //打开和URL之间的连接 URLConnection connection = url.openConnection(); //建立实际的连接 connection.connect(); //创建输入流对象 InputStream is = connection.getInputStream(); //建立Bitmap对象 Bitmap bm = BitmapFactory.decodeStream(is); //显示图片 iv.setImageBitmap(bm); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } */                
            //方法三:

    /* try { //声明并实例化url,http://...是网上图片地址 URL url = new URL("http://img3.imgtn.bdimg.com/it/u=1219545299,4180981016&fm=23&gp=0.jpg"); //创建输入流对象 InputStream is = url.openConnection().getInputStream(); //BufferedInputStream是带缓冲区的输入流,默认缓冲区大小是8M,能够减少访问磁盘的次数,提高文件读取性能 BufferedInputStream bis = new BufferedInputStream(is); //建立Bitmap对象 Bitmap bitmap = BitmapFactory.decodeStream(bis); //显示图片 iv.setImageBitmap(bitmap); //刷新imageview iv.invalidate(); //关闭缓冲输入流 bis.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } */
                }
            }).start();

    }
}

在这里就不截图了,当然,肯定还有其他的方法,本例的源码地址:
http://download.csdn.net/detail/u013293125/9454939

你可能感兴趣的:(android,bitmap,imageview)