zoukankan      html  css  js  c++  java
  • Android使用ImageView显示网络图片

    本案例使用ImageView 简单的实现了网络图片的调用。当中注意事项。由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章 Android中使用HttpClient实现HTTP通信效果 ,因此。须要注意配置网络权限问题。以及须要使用新线程及Handler来更新Activity,不然会直接报错Not Main Thread 看实例: MainActivity.java
    package com.example.imageview;
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.view.Menu;
    import android.widget.ImageView;
    
    public class MainActivity extends Activity {
    private Bitmap bm = null;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    
    final Handler handler = new Handler();
    new Thread() {
    public void run() {
    bm = new ApacheHttpClient()
    .getHttpBmp("http://www.qilujiaju.com/data/attachment/block/c9/c960ba426890a8ddbfc35d2b4b0d97c9.jpg");
    handler.post(new Runnable() {
    
    @Override
    public void run() {
    // TODO Auto-generated method stub
    ImageView imageView = (ImageView) findViewById(R.id.imageView1);
    imageView.setImageBitmap(bm);
    }
    });
    }
    }.start();
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
    }
    
    }
    
    ApacheHttpClient.java
    package com.example.imageview;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.HttpStatus;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.DefaultHttpClient;
    
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.util.Log;
    
    public class ApacheHttpClient {
    private static final String TAG = "Error";
    
    public InputStream httpGet(String url) {
    InputStream result = null;
    HttpClient httpClient = new DefaultHttpClient();
    HttpGet httpGet = new HttpGet(url);
    HttpResponse httpResponse = null;
    try {
    httpResponse = httpClient.execute(httpGet);
    int httpStatus = httpResponse.getStatusLine().getStatusCode();
    if (httpStatus == HttpStatus.SC_OK) {
    InputStream in = httpResponse.getEntity().getContent();
    try {
    result = in;
    } catch (Exception e) {
    Log.i(TAG, "Exception");
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    } else {
    result = null;
    }
    } catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    Log.i(TAG, "ClientProtocolException");
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    Log.i(TAG, "ClientProtocolException");
    }
    return result;
    }
    
    public Bitmap getHttpBmp(String url) {
    Bitmap bm = null;
    InputStream is = httpGet(url);
    bm = BitmapFactory.decodeStream(is);
    return bm;
    }
    }
    
    AndroidMainFest.xml
    <?

    xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.imageview" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="16" /> <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.imageview.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>

    activity_main.xml
    <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"
    tools:context=".MainActivity" >
    
    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:src="@drawable/app" />
    
    </RelativeLayout>
    
    这是一个完整的实例,可直接执行于模拟器或真机。
  • 相关阅读:
    在vmware workstation10上安装ubuntu14.04,出现以下问题
    经典句
    杂文
    matlab里textread出现错误“Trouble reading floating point number from file (row 1, field 1)”
    Nginx配置杂记(转)
    mysql经典案例分析
    Git查看、删除、重命名远程分支和tag(转)
    nginx下开启pathinfo模式
    ubuntu-apache如何解决跨域资源访问
    c语言插入排序
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/7252593.html
Copyright © 2011-2022 走看看