編輯:關於Android編程
(1)該文件下載主要演示異步任務下載圖片
(2)布局代碼如下:一個ImageView用於存放下載的圖片,Button用於開始異步任務下載
package com.example.asynctask_download;
import java.io.IOException;
import org.apache.http.HttpResponse;
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 org.apache.http.util.EntityUtils;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private Button button1;
private ImageView imageView1;
private final String IMAGE_PATH = "http://www.baidu.com/img/bd_logo1.png";// 設置網頁圖片的地址
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) this.findViewById(R.id.button1);
imageView1 = (ImageView) this.findViewById(R.id.imageView1);
/*
* 下載進度條的設置
*/
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("提示");
progressDialog.setCancelable(false);
progressDialog.setMessage("正在下載圖片,請耐心等候!");
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/*
* 異步任務、執行下載圖片
*/
new MyTask().execute(IMAGE_PATH);
}
});
}
/*
* 異步任務:三個參數、四個步驟onPreExecute()、
* doInBackground()、onProgressUpdate()、onPostExecute()、沒有參數傳傳進去的時候可以使用void
*/
public class MyTask extends AsyncTask {
/*
* onPreExecute()方法在後台操作開始前運行在UI線程上
*/
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog.show();
}
/*
* doInBackground方法運行在後台並處理後台操作
*/
@Override
protected byte[] doInBackground(String... params) {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(params[0]);
byte[] result = null;
try {
HttpResponse httpResponse = httpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
result = EntityUtils.toByteArray(httpResponse.getEntity());
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
httpClient.getConnectionManager().shutdown();
}
return result;
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
}
/*
* 一旦後台操作完畢,onPostExecute()方法就會在UI線程中運行
*/
@Override
protected void onPostExecute(byte[] result) {
super.onPostExecute(result);
/*
* 將下載的bitmap放置在imagView中去
* result就是下載的圖片
*/
Bitmap bitmap = BitmapFactory.decodeByteArray(result, 0,
result.length);
imageView1.setImageBitmap(bitmap);
progressDialog.dismiss();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}


(5)顯示帶刻度條的文件下載:<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">package com.example.asynctask_download;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.http.HttpResponse;
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 org.apache.http.util.EntityUtils;
import android.R.integer;
import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends Activity {
private Button button1;
private ImageView imageView1;
private final String IMAGE_PATH = "http://img.daimg.com/uploads/allimg/150114/3-150114151438.jpg";// 設置網頁圖片的地址
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button) this.findViewById(R.id.button1);
imageView1 = (ImageView) this.findViewById(R.id.imageView1);
/*
* 下載進度條的設置
*/
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("提示");
progressDialog.setCancelable(false);
progressDialog.setMessage("正在下載圖片,請耐心等候!");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
/*
* 異步任務、執行下載圖片
*/
new MyTask().execute(IMAGE_PATH);
}
});
}
/*
* 異步任務:三個參數:第一個地址、第二個、第三個結果 四個步驟:onPreExecute()、
* doInBackground()、onProgressUpdate()、onPostExecute()、沒有參數傳傳進去的時候可以使用void
*/
public class MyTask extends AsyncTask


Android app開發中的Fragment入門學習教程
在Android3.0上開始引入了一個新概念叫Fragment。它有自己的布局文件,可以作為組件排布,也可以相互組合去實現不同的布局顯示。使用Fragment可以重復利用
布局與控件(五)-Toast吐司與布局的抽象標簽merge include ViewStub
第5節 Toast5.1 使用效果Toast用來向用戶彈出一個提示框,然後自動消失,就像這樣,面包機烤好面包後,就騰的一下把面包從面包機裡彈出來。而這個控件顯示時也像是從
android 自定義組合控件
自定義控件是一些android程序員感覺很難攻破的難點,起碼對我來說是這樣的,但是我們可以在網上找一些好的博客關於自定義控件好好拿過來學習研究下,多練,多寫點也能找到感覺
Andriod學習教程之滑動布局(14)
本文實例為大家分享了Andriod滑動布局的具體代碼,供大家參考,具體內容如下MainActivity.java代碼:package siso.swipelayoutde