2010年1月30日土曜日

脳が冴える15の習慣

という本を読みました。
結構面白かったので、以下抜粋&まとめ

1.毎朝同じ時間に起きる
 /朝起きたら脳のウォーミングアップをする(足・手・口を動かす)
2.生活のどこかに「試験を受けている状態」を持つ
 /脳の基本回転数を上げるのには時間の制約が必要
 /時間と仕事の量をはっきり認識すること
3.夜は情報を蓄える時間。睡眠中の「整理力」を利用しよう
 (REM睡眠とは Rapid Eye Movement のこと)
 /「夜の勉強は中途半端にやれ」そしてがっつり寝る(最低でも6時間)
4.家事こそ「脳トレ」。雑用を積極的にこなそう
 /若いころの雑用は買ってでもしろ
 「毎日自分を小さく律することが、大きな困難にも負けない耐性を育てる」
5.自分を動かす「ルール」と「行動予定表」をつくろう
 /書類整理・机や本棚の整理・名刺の管理・衣類の処分・台所の整理などのルールをつくる
 /一日の行動予定表をつくる
 /問題解決に至るプロセス(フローチャートなど)を書く
6.忙しいときほど「机の片付け」優先させよう
 /思考の整理は物の整理に表れる
 /机の整理は優秀な上司を持つことと同じ
7.意識して目をよく動かそう。耳から情報を取ろう
 /遠くのビル群や雲や飛行機に焦点を合わせて、目のフォーカス機能を使う
 /視覚的情報が遮断された状態で耳から情報を取る訓練をする
8.「報告書」「まとめ」「ブログ」を積極的に書く
 /情報を意識的に脳に入れる
 /情報を解釈し、イメージで捉える
 /だれかに伝えることを意識して情報を取る
9.メモや写真などを手がかりにして、長い話を組み立てよう
10.「たとえ話」を混ぜながら、相手の身になって話そう
11.脳のためにも適度な運動と「腹八分目」を心がけよう
12.「失敗ノート」を書こう。自分の批判者を大切にしよう
 /自分の失敗を記録し、傾向を割り出す
 /失敗を分析するときには、小さな失敗から注目していく
13.ひらめきは「余計なこと」の中にある。活動をマルチにしよう
 /「何の役に立つのか」より「誰の役に立つのか」を重視して考える
 /アイデアは情報の組み合わせと考える
 /案ずるより書くが易し
14.人を好意的に評価しよう。ときにはダメな自分を見せよう
 /小さな成長を認めて誉めよう
 /人に評価してもらうためには、それ以前に、自分が人を評価してあげていなければならない

2010年1月29日金曜日

Android Activity の Methods

setDefaultKeyMode(int mode)

この Activity でハンドリングするデフォルトキーを選択する Method です。
ハンドルされていないキーイベントに対して何を起動するかをコントロールします。
デフォルトモード (DEFAULT_KEYS_DISABLE) は単にそのイベントを落とすだけです。
その他のモードでは、
 ・ダイアラーを起動する
  (DEFAULT_KEYS_DIALER)
 ・options menu のショートカットを実行する
  (DEFAULT_KEYS_SHORTCUT)
 ・検索を起動する
  (DEFAULT_KEYS_SEARCH_LOCAL and DEFAULT_KEYS_SEARCH_GLOBAL).
があります。

ここで選択したキーイベントのハンドリングは "back" や "menu" キーのような
システムキーには影響しません。
また、選択を適用した activity とその view は常に全てのアプリケーションキー
の受信と処理を行う最初の機会を得ることができます。


managedQuery (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)

query(android.net.Uri, String[], String, String[], String) の
ラッパー。
startManagingCursor(Cursor) を呼ぶための Cursor を返します。

Parameters
 uri      The URI of the content provider to query.
 projection   List of columns to return.
 selection   SQL WHERE clause.
 selectionArgs The arguments to selection, if any ?s are pesent
 sortOrder   SQL ORDER BY clause.

2010年1月7日木曜日

Android Viewのサイズを取得する。

Button や EditText (もちろん LinearLayout なども)
といった View のサイズを onCreate() のなかで取得しようと
しても 0 になってしまいます。


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

int width = findViewById(R.id.button1).getWidth();
}


これだと width には 0 が入ってしまいます。

onCreate() ではなく onWindowFocusChanged() のなかで
取得すれば 0 にならないで、実際の値が得られます。


@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
int width = findViewById(R.id.button1).getWidth();
}


これでOK。

Android Button の色や画像を変える

Button の背景を別の色や画像に変えるには、
2つ方法があります。

最も単純な方法は Button タグのパラメータで

android:background="@drawable/button_image"



android:background="#ff0000ff"

のように画像や background を指定する方法です。

しかし、この場合だとボタンにフォーカスがあった
場合やボタンが押された場合でも変化がありません。

そこで、ボタンにフォーカスがあった場合や、
ボタンが押された場合の色や画像を指定する方法があります。

わかりやすくするために、色の場合と画像の場合で
分けて書きます。

・色の場合

まず、次のような xml ファイルを drawable/ に作ります。

color_stateful.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<color android:color="#ff5555ff" />
</item>
<item android:state_pressed="false">
<color android:color="#ff9999ff" />
</item>
</selector>


もしくは


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:color="@color/testcolor1" />
<item
android:state_pressed="true"
android:state_enabled="false"
android:color="@color/testcolor2" />
<item
android:state_enabled="false"
android:color="@color/testcolor3" />
<item
android:state_active="true"
android:color="@color/testcolor4" />
<item android:color="@color/testcolor5"/>
</selector>


・画像の場合

image_stateful.xml

<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_focused="true"
android:drawable="@drawable/image1"/>
<item
android:state_pressed="true"
android:state_enabled="false"
android:drawable="@drawable/image2" />
<item
android:state_enabled="false"
android:drawable="@drawable/image3" />
<item
android:state_active="true"
android:drawable="@drawable/image4" />
<item android:color="@color/testcolor5" />
</selector>



あとは、 Button のパラメータで

android:background="@drawable/color_stateful"

android:background="@drawable/image_stateful"

と指定すればOK。


 

Android Intent.ACTION_SEND

ある文章を Twitter client や Mailer などで送りたいとき、

Intent.ACTION_SEND で Intent を投げればOKです。

具体的なコードはこんな感じ。


Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "これはテストです。");
try{
startActivityForResult(intent, 0);
}
catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(this, "client not found", Toast.LENGTH_LONG).show();
}

2010年1月5日火曜日

Android textにリンクをはる

TextView の android:text に http://www.google.com のような
アドレス形式が含まれる文字列を指定する場合、

android:autoLink="web"

を指定すれば、アドレス部分が青文字+下線付きになり、
その部分をタップすると、ブラウザに飛ぶようにすることができます。

こんな感じ




他にも

"email", "phone", "map", "all"

が指定できます。