LinearLayoutを使ったボタンレイアウト

LinearLayoutを使ったボタンレイアウトでつまずいたので備忘録。

こんな感じのレイアウトを作ってみた。

20110512_layout

Androidアプリではレイアウトはxmlで作成できるので、
以下のようなXMLを記載した。
■/res/layout/main.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout
xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:orientation=”vertical”>
<LinearLayout
android:layout_weight=”1″
android:layout_height=”fill_parent”
android:layout_width=”fill_parent”
android:background=”#000000″
android:orientation=”vertical” >
<LinearLayout
android:layout_weight=”1″
android:layout_height=”fill_parent”
android:layout_width=”fill_parent”
android:orientation=”horizontal” >
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”1″ />
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”2″ />
</LinearLayout>
<LinearLayout
android:layout_weight=”1″
android:layout_height=”fill_parent”
android:layout_width=”fill_parent”
android:orientation=”horizontal” >
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”3″ />
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”4″ />
</LinearLayout>
<LinearLayout
android:layout_weight=”1″
android:layout_height=”fill_parent”
android:layout_width=”fill_parent”
android:orientation=”horizontal” >
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”5″ />
<Button
android:layout_weight=”1″
android:layout_width=”fill_parent”
android:layout_height=”fill_parent”
android:textSize=”@dimen/button_font_size”
android:text=”6″ />
</LinearLayout>
</LinearLayout>
</LinearLayout>

それから実際に書いたプログラム部分

■/src/MainActivity.java
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.panel);
}

}

LinearLayoutのパラメータの説明はここを参考にした。
<http://developer.android.com/intl/ja/reference/android/widget/LinearLayout.html>

これだけで冒頭のレイアウトができたわけで。
あとはちょちょいとイベントリスナーや描画処理を追加すればアプリができそうな気がする。

これからも頑張るぞ!

2011.5.12
NECO

fontの入れ替え

Androidに最初から搭載されているCJKフォントに違和感を感じたので、変更してみた。

以下手順で行った。
1, フォントを取得
2, 既存のフォントを置き換え

1に関しては問題ないが、
2が結構めんどくさかった。

以下、2の詳細手順
2-1, root取得
フォントが格納されている/system/fontsには
書き込み権限がないため、rootになる必要がある。

端末によりけりなのでぐぐって対応した。
2-2,
busyboxの導入
標準でシェルコマンドのcpやrmが使用できないので
AndroidMarketから取得。
2-3, 置き換える。
>adb pop /system/fonts/DroidSansFallback.ttf

DroidSansFallback.ttf
←バックアップ
>adb push xxxxx.ttf /sdcard
>adb shell
$su
#rm
/system/fonts/DroidSansFallback.ttf
#cp /sdcard/xxxxx.ttf /system/fonts/DroidSansFallback.ttf
#reboot

これで置き換えが完了!

20110428_font

もっと導入を簡単にできれば、個性が出し易くなって
暮らしが豊かになるような気がする。

2011.4.28
NECO

Androidの音声認識の罠

音声認識のAndroidアプリを作りたい!
そう思って、音声認識のRecognizerIntent.ACTION_RECOGNIZE_SPEECHに手を出してみた。

実装を終え、実際に動作させてみた。
だが、以下のエラーメッセージでぶち当たる。

「接続エラー」

・・・ぐぐったところ、どうやらRecognizerIntent.ACTION_RECOGNIZE_SPEECHでは
googleのRecognitionServiceに接続するとのこと。

案の定、端末がネットから切断されていたので、接続するようにしたら解消された。

今振り返ってみると罠でも何でもないかもしれない。

今後ゲームとかで使うことになるなら、それとなく取得できるようにする必要があるかも。

2011.4.26
NECO

Androidの時計アプリを作ってみた

今回は定期実行のプログラムのテストを兼ねて時計アプリを作ってみた。

ついでに、前回導入したデバッグ機能を使って、端末上のアプリのスクリーンショットを撮った。

20110425_clock1 20110425_clock2  

でも、Androidっぽいことに何一つ触れてないことに、
ブログ書いてる途中に気づいた。

次回は、タッチイベントとか音声入力とかかな。

2011.4.25
NECO

Androidのデバッグについて

Androidアプリの開発を行う際になんども動作確認を行うのだが
エミュレータの起動が遅く、とても効率が悪い。

アプリの動作確認を効率化するために、端末でのデバッグの仕方をまとめてみた。

以下、手順

1, 端末のデバッグ機能を有効にする。
2, PCにUSBドライバを入れる。
3, 端末とPCをUSBで接続する。
4, eclipseから端末にアプリを転送し、起動する。
5, ブレークポイント貼ったり、変数が確認できる。

・・・となる予定。
だけど、実際にやっても、eclipseから端末を認識できず、
転送できない。

今日は、原因調査を頑張るぞ!

[4/23 追記]
どうやら、端末をデバッグモードに切り替えた直後では、PCから正常に認識されないことがある模様。
端末を再起動してみたところ、eclipseのDDMSのデバイス一覧に認識された。

お騒がせしましたー

2011.4.23
NECO

GALAXY S を選んだ理由

今回は、数あるAndroidの中でGALAXY Sを選んだ理由を書いてみました。

■Xperia PLAY
Android 2.3でプレステが遊べる。
日本の対応状況がわからないのと値段が高いため見送り。

■Libero

スペックはあまり高くないが値段の割に軽いと評判とのこと。
店頭に置いていなかったので購入ならず。

■GALAPAGOS
3D表示もできるAndroid 2.2端末。

■DesireHTC
機能は少ないが、軽量なAndroid。
店頭にSIMフリー版がなかった。

■GALAXY S
機能が豊富なAndroid2.2。レスポンスが良く、
画面も明るくて使いやすかった。

・・・

以上。
将来、キャリアを変更する可能性も考慮して
輸入版でSIMフリーなGALAXY Sを購入ができて良かった!

2011.4.20
神森 真昼

SIMフリー版GALAXY Sの日本語化に挑戦

GALAXY Sの日本語化に挑戦してみた。

結果としては、システム周りが全然更新されてない。

以下、やったこと。

ロケールの変更はmore Locale2で行った。
http://ccl.c-lis.co.jp/
言語はja、地域はJPで設定。

日本語IMEのひとつSimejiの導入した。
http://www.adamrocker.com/blog/279/reveal-simeji-preview-version-basedon-open-wnn.html

操作性はiPhoneっぽいらしい。
だけど、使ったことないので、最初はちょっと慣れなかった。

フォントの変更は未着手。
一応ひらがなカタカナや漢字が表示されるけど、
一部の文字で常用外の漢字になる。”誤”とか。
日本語フォントを入れれば解決するはずだが、
現状は特に困ってないのでこのままで。

できれば、システムが日本語化してくれると分り易くなるけど。
早く使いこなせるようになりたい!

2011.4.17
NECO