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;@Overrideprotected 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() {@Overridepublic void run() {// TODO Auto-generated method stubImageView imageView = (ImageView) findViewById(R.id.imageView1);imageView.setImageBitmap(bm);}});}}.start();}@Overridepublic 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 blocke.printStackTrace();}} else {result = null;}} catch (ClientProtocolException e) {// TODO Auto-generated catch blocke.printStackTrace();Log.i(TAG, "ClientProtocolException");} catch (IOException e) {// TODO Auto-generated catch blocke.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-sdkandroid:minSdkVersion="8"android:targetSdkVersion="16" /><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="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" ><ImageViewandroid: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>

这是一个完整的实例,可直接执行于模拟器或真机。

$(function () {
$(‘pre.prettyprint code‘).each(function () {
var lines = $(this).text().split(‘\n‘).length;
var $numbering = $(‘

    ‘).addClass(‘pre-numbering‘).hide();
    $(this).addClass(‘has-numbering‘).parent().append($numbering);
    for (i = 1; i <= lines; i++) {
    $numbering.append($(‘

  • ‘).text(i));
    };
    $numbering.fadeIn(1700);
    });
    });

相关文章