Android

Android関連


AlertDialogをモーダルにする


setCancelableメソッドをfalseにすることで、戻るボタンやダイアログ以外の場所をクリックされても
ダイアログが閉じないようにできる


参考サイト



画像を扱う際のOutOfMemory対策


androidではメモリが少ないため、すぐメモリリークが起こる。

そのため、普段よりもメモリを気にして開発することが必須になる。


参考サイト

Androidにおける画像の取扱い
http://lablog.lanche.jp/archives/192




一定時間で自動的に閉じるポップアップ


	String msg1 = Util.getString((Context)thisActivity,R.string.M120);
	final AlertDialog dialog = new AlertDialog.Builder((Context)thisActivity)
	.setTitle(Util.getString((Context)thisActivity,R.string.I000))
	.setMessage(msg1)
	.create();
	Handler handler = new Handler();
	Runnable r = new Runnable() {
			public void run() {
					dialog.dismiss();
					setResult(RESULT_OK);
					finish();
			}
	};
	dialog.show();
	handler.postDelayed(r, 5000);




ちょっとしたポップアップ


以下でポップアップを表示できる

Toast.makeText(context, "なんかの文字", Toast.LENGTH_LONG).show();



ソフトウエアキーボード制御


キーボードでテキストボックスが隠れないように
実装したかったができなかった。

↓これを参考にしたが、だめorz
http://ssnohibi.blog122.fc2.com/blog-entry-121.html

参考にしたサイトをあげておく。

参考




ライフサイクル


Activityイベントが呼ばれる順番。

参考

TechBooster 図解Androidのライフサイクルとプラットフォーム
http://techbooster.jpn.org/andriod/environment/323/



ソフトキーボード表示時、画面タッチでキーボードをしまう

InputMethodManagerのhideSoftInputFromWindow()を使用。
対象のEditTextに適用する

InputMethodManager inputMethodManager =
					(InputMethodManager)act.getSystemService(Context.INPUT_METHOD_SERVICE);

			//ソフトキーボードを閉じるように設定
for(int txtId:txtIdArray){
 EditText txt = (EditText)lil.findViewById(txtId);
 inputMethodManager.hideSoftInputFromWindow(txt.getWindowToken(),0);
}


strokeタグを利用して枠線を描画することができます。

「android:width」にて枠線の幅を設定
「android:color」にて線の色を設定

  • corners にて枠線の角の設定を行います。
  • paddingにて描画領域を内側に寄せます。
 枠線に内側のビューが重ならないように、枠線の幅の分はpaddingで寄せるようにします。
  • solid にて枠線の内側の塗りつぶしを行います。



shapeタグを使用することにより、グラデーションや枠線、角丸などの効果を持った背景形状を定義できます。




画像の色からカラーコードを調べる方法


ペイントで画像を開いて、スポイトのマークで吸い取ったら
色→色の編集→色の作成
に吸い取ったカラーのRGB値(10進数)が出てます。
それをRGBの順で16進数になおしてつなげる



OnTouchListenerのonTouchイベント戻り値


押しっぱなしのとき、falseを返すと一度で処理が終わるが、
trueを返すとまた処理に入る



widgetを非表示にして詰める方法


  TextView txt = (TextView) findViewById(R.id.txt);
       txt.setVisibility(View.GONE);

↑消したいやつにGONEを指定すると、非表示にして詰めるようにできる。



OutputStream#write(int) バッファ使用

めっちゃ速さが変わる!!!




java高速化方法





android キャプチャ取り方


eclipseでDDMSタブのDevicesタブにある対象の端末を選択し、
カメラのアイコンをクリック。

別ウィンドウが表示され、キャプチャできる。



スクロールバー常に表示


android:fadeScrollbars="false"



一気にトップに戻るときなどに生成したアクティビティを削除する方法


画像ファイルが解放されなくて、メモリリークになったが、
下記のサイト解決できそう。


遷移するときにインテントフラグをセットすればいいらしい。



前回状態を維持したまま、前の画面に戻る

前回状態で前の画面に戻る場合、
startActivityForResult()でリクエストコードを渡して、判定するやり方がある。

TOP画面に戻るなど、中間の画面を飛ばして遷移する場合は、
この方法で中間のActivityを残さないで遷移できる。
(中間のActivityが残るとメモリがどんどん消費される→メモリリークorz)

参考








関連書籍


最終更新:2012年08月29日 21:17