2010年5月13日木曜日

Androidでスレッドの利用

このエントリーをはてなブックマークに追加
Androidでスレッドの利用方法です.

Handlerを使います.

注意点が必要なのはメインスレッドではないスレッドで,ViewなどのGUI部品を触れないということです.
なので,GUI部品を触るのは,メインスレッドでやりましょう.


import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class Temp extends Activity implements Runnable {
private ProgressDialog progressDialog;
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
do();
}

private void do(){
// 通信中ダイアログの表示
progressDialog = new ProgressDialog(this);
progressDialog.setTitle("データ取得中");
progressDialog.setMessage("しばらくお待ちください");
progressDialog.setIndeterminate(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
Thread thread = new Thread(this);
thread.start();
}
public void run() {
// 時間のかかる処理をここに記述
try{
// 今回はわざと3秒間スリープ
Thread.sleep(3000);
} catch (InterruptedException ie){
} ///////////////////////

handler.sendEmptyMessage(0);
}

private Handler handler = new Handler() {
public void handleMessage(Message msg) {
// 処理終了時の動作をここに記述

/////////////////////////
// プログレスダイアログ終了
progressDialog.dismiss();
}
};
}

Androidで画面サイズの取得

このエントリーをはてなブックマークに追加
Androidで画面サイズを取得するやり方メモ

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels; // 横幅サイズを取得
int height = metrics.heightPixels; // 縦幅サイズを取得

Androidのエミュレータ利用法

このエントリーをはてなブックマークに追加
EclipseでAndroid開発をしている際,Eclipseの[実行]からAndroidアプリケーションで実行をすると思います(そして,エミュレータが立ち上がり挙動を確かめる.).

しかし,エミュレータを起動するのには,結構な時間がかかります.

そこで,エミュレータを立ち上げたまま,コマンドでプログラム(*.apk)をダウンロードする方法を記載します.
[]内は環境に合わせて書き換えてください.

<エミュレータの立ち上げ方>
emulator -avd [AVD名]

<ダウンロード方法>
adb install [*.apk]adb install -r [*.apk]   // すでにエミュレータ内にapkがある場合は,再インストールのためrオプションを書きます.
adb -d install [*.apk] // 実機にインストールする場合
adb -e install [*.apk] // エミュレータにインストールする場合