今回使用した環境 | |
Eclipse | 4.2 Juno (Pleiades All in One) |
Andriod SDK | 20.0.3 |
ADT | 20.0.3 |
2012年11月25日日曜日
Androidアプリ プロジェクトの作成(Eclipse 4.2 & SDK r20)
前回、SDKのインストールを紹介しましたので、今回はEclipse環境(Eclipse 4.2 Juno)でのプロジェクト作成方法について紹介します。なお、Eclipseのインストールについては以前の記事をご覧下さい。
ラベル:
Androidアプリ開発Tips
2012年11月16日金曜日
2012年11月7日水曜日
通知(Notification) #7 (プログレスバー)
今回は通知エリアにプログレスバーを表示します。プログレスバーがあると、ユーザーがいつまで待てばいいのかわかりますので有効な方法ですね。
なお、今回のサンプルプログラムはAPI Level 14 (Android 4.0)以降を対象としています。
なお、今回のサンプルプログラムはAPI Level 14 (Android 4.0)以降を対象としています。
ラベル:
Androidアプリ開発Tips
2012年10月18日木曜日
通知(Notification) #6 (アクティビティ呼出)
これまでNotificationを使って、アプリケーションの情報をユーザーに通知する方法を説明してきました。
今回は通知エリアに表示された通知をクリックしてアクティビティを呼び出すようにしてみます。
以下は、自アクティビティを呼ぶサンプルです。
「通知(Notification)」のサンプル、NotificationTest1aActivity.javaをベースに作りました。
今回は通知エリアに表示された通知をクリックしてアクティビティを呼び出すようにしてみます。
以下は、自アクティビティを呼ぶサンプルです。
「通知(Notification)」のサンプル、NotificationTest1aActivity.javaをベースに作りました。
ラベル:
Androidアプリ開発Tips
2012年10月12日金曜日
タイトルバーの文字列をセンタリング
通常タイトルバーは左寄せで表示されることが多いですが、タイトルバーのレイアウトを XML で定義して変更することが可能です。今回は、タイトルバーの文字列をセンタリングしてみましょう。
ラベル:
Androidアプリ開発Tips
2012年10月1日月曜日
通知(Notification) #5 (Clear対象外)
通知エリアの「Clear」ボタンを押すと、「通知」はすべて消去されてしまいます。ユーザーに確実に知ってもらいたいような重要な通知は、ユーザーがそれをクリックするまで残しておきたいものです。
そこで今回は通知エリアの「Clear」ボタンを押しても通知が消去されないようにするサンプルプログラムを紹介します。
◆ 通知(Notification) #5 (Clear対象外)
前回に引き続き、今回も主役はNotificationのフラグです。
Notify #1はこれまでと同じで、通知エリアの「Clear」ボタンで消去されます。
Notify #2が選択された場合は、フラグ(FLAG_NO_CLEAR)をセットして、消去されないようにします。
そこで今回は通知エリアの「Clear」ボタンを押しても通知が消去されないようにするサンプルプログラムを紹介します。
◆ 通知(Notification) #5 (Clear対象外)
前回に引き続き、今回も主役はNotificationのフラグです。
Notify #1はこれまでと同じで、通知エリアの「Clear」ボタンで消去されます。
Notify #2が選択された場合は、フラグ(FLAG_NO_CLEAR)をセットして、消去されないようにします。
ラベル:
Androidアプリ開発Tips
2012年9月26日水曜日
通知(Notification) #4 (クリックでキャンセル)
前回は、通知エリアの「Clear」ボタンの他に、アプリケーションから通知を消去する方法について説明しました。プログラムからタイミングを見計らって消去するにはこの方法でいいのですが、実際にはユーザーが「確認したので消したい」というケースも多いはずです。
今回は、通知エリアに表示された通知をクリックすることで、その通知を消去するサンプルプログラムを紹介します。
◆ 通知(Notification) #4 (クリックでキャンセル)
前回、通知を「実行中」にするために、Notificationのフラグを変更しました。今回もこのフラグを変更することで、通知をクリックするとキャンセルできるようになります。
今回は、通知エリアに表示された通知をクリックすることで、その通知を消去するサンプルプログラムを紹介します。
◆ 通知(Notification) #4 (クリックでキャンセル)
前回、通知を「実行中」にするために、Notificationのフラグを変更しました。今回もこのフラグを変更することで、通知をクリックするとキャンセルできるようになります。
ラベル:
Androidアプリ開発Tips
2012年9月18日火曜日
通知(Notification) #3 (実行中/キャンセル)
Notificationは、実行結果を「通知」する以外に、「実行中」であることを示すこともできます。
これはAndroid 2.2英語版での例です。"Ongoing"が「実行中」、"Notifications"が「通知」です。
これはAndroid 2.2英語版での例です。"Ongoing"が「実行中」、"Notifications"が「通知」です。
ラベル:
Androidアプリ開発Tips
2012年9月11日火曜日
通知(Notification) #2
前回の記事で、複数の通知について少しだけ触れました。今回はその確認をしてみましょう。
通常はひとつのアプリケーションでは最新の通知だけを表示する場合が多いと思いますが、例えばGoogle Playのように、インストールやアップデートした結果をアプリケーションごとに表示したい場合は、複数の通知を行います。
◆ 通知(Notification) #2
複数の通知はIDをユニークにすれば可能です。以下のサンプルプログラムでは、2つの通知ができるように、IDを2種類用意します。どちらの通知を使うかはラジオボタンで選択して、通知のIDには選択したラジオボタンのリソースIDを流用します。
通常はひとつのアプリケーションでは最新の通知だけを表示する場合が多いと思いますが、例えばGoogle Playのように、インストールやアップデートした結果をアプリケーションごとに表示したい場合は、複数の通知を行います。
◆ 通知(Notification) #2
複数の通知はIDをユニークにすれば可能です。以下のサンプルプログラムでは、2つの通知ができるように、IDを2種類用意します。どちらの通知を使うかはラジオボタンで選択して、通知のIDには選択したラジオボタンのリソースIDを流用します。
ラベル:
Androidアプリ開発Tips
2012年9月3日月曜日
通知(Notification)
ステータスバーや通知エリアに通知を表示するには、NofiticationクラスとNotificationManagerクラスを使います。
◆ 通知(Notification)
以下は、入力したテキストを通知するサンプルプログラムです。
◆ 通知(Notification)
以下は、入力したテキストを通知するサンプルプログラムです。
ラベル:
Androidアプリ開発Tips
2012年8月24日金曜日
タイトルバー文字列の変更
通常タイトルバーにはstrings.xml内のapp_nameに指定されている文字列(アプリケーション名)が表示されますが、この文字列の変更が可能です。今回はタイトルバーの文字列を一時的に変更してみることにします。
◆ タイトルバー文字列の変更
サンプルプログラムは「タイトルバーにプログレス(バー)の表示」で作成したプログラムをもとに作成します。当該プログラムではタイトルバーにプログレスバーを表示しますが、その間にタイトルバー文字列の後に続けて進捗率を示すパーセンテージを表示します。
◆ タイトルバー文字列の変更
サンプルプログラムは「タイトルバーにプログレス(バー)の表示」で作成したプログラムをもとに作成します。当該プログラムではタイトルバーにプログレスバーを表示しますが、その間にタイトルバー文字列の後に続けて進捗率を示すパーセンテージを表示します。
ラベル:
Androidアプリ開発Tips
2012年8月17日金曜日
タイトルバーにプログレス(縞模様バー)の表示
タイトルバーへのプログレス表示の初回タイトルバーにプログレス(円)の表示で、時間や処理量が不確定の場合の表示に使用するサンプルを紹介しましたが、この場合の表示としてもう一つ別の表現方法があります。
同様にタイトルバーに表示を行うのですが、円ではなく縞模様のバーで表示する方法です。
◆ プログレス(縞模様バー)の表示
それではこのサンプルを作成してみましょう。
同様にタイトルバーに表示を行うのですが、円ではなく縞模様のバーで表示する方法です。
◆ プログレス(縞模様バー)の表示
それではこのサンプルを作成してみましょう。
ラベル:
Androidアプリ開発Tips
2012年8月9日木曜日
タイトルバーにプログレス(バー)の表示(セカンダリ)
前回からの続きです。
前回は進捗率を示して表示を行う「バー」のプログレスを紹介しました。こちらはセカンダリプログレスバーを使ったサンプルです。プログレスバーに加え、セカンダリプログレスバーを表示しています。先行して処理しているものの進捗状況について、セカンダリ値に指定すると、プログレスバーより薄めの色で進捗状況を表示します。
◆ プログレス(バー)の表示(セカンダリ)
前回は進捗率を示して表示を行う「バー」のプログレスを紹介しました。こちらはセカンダリプログレスバーを使ったサンプルです。プログレスバーに加え、セカンダリプログレスバーを表示しています。先行して処理しているものの進捗状況について、セカンダリ値に指定すると、プログレスバーより薄めの色で進捗状況を表示します。
◆ プログレス(バー)の表示(セカンダリ)
ラベル:
Androidアプリ開発Tips
2012年8月2日木曜日
タイトルバーにプログレス(バー)の表示
前回からの続きです。
前回は時間や処理量が不確定の場合に使用する「円」のプログレスをご紹介しました。今回は進捗率を示して表示を行う「バー」のプログレスをタイトルバーに表示してみます。
◆ プログレス(バー)の表示
前回は時間や処理量が不確定の場合に使用する「円」のプログレスをご紹介しました。今回は進捗率を示して表示を行う「バー」のプログレスをタイトルバーに表示してみます。
◆ プログレス(バー)の表示
ラベル:
Androidアプリ開発Tips
2012年7月26日木曜日
タイトルバーにプログレス(円)の表示
以前に作業中であることを示すための方法として「ProgressDialog(円)」と「ProgressDialog(バー)」を紹介しました。
今回はこれらの情報をタイトルバーに表示してみることにします。
タイトルバーへのプログレス表示ですが、ProgressDialogでも説明しましたように、作業中であることを表現する方法は2つあります。時間や処理量が不確定の場合に表示するもの、もうひとつは進捗率を示して表示するものです。これからこれらそれぞれの場合について4種類のサンプルを作成していきたいと思います。
一つ目として、今回は時間や処理量が不確定の場合に円で表示するサンプルを作ります。
◆ プログレス(円)の表示
今回はこれらの情報をタイトルバーに表示してみることにします。
タイトルバーへのプログレス表示ですが、ProgressDialogでも説明しましたように、作業中であることを表現する方法は2つあります。時間や処理量が不確定の場合に表示するもの、もうひとつは進捗率を示して表示するものです。これからこれらそれぞれの場合について4種類のサンプルを作成していきたいと思います。
円 時間や処理量が不確定 バー 進捗率を示す バー(セカンダリ) 進捗率を示す バー(縞模様) 時間や処理量が不確定
一つ目として、今回は時間や処理量が不確定の場合に円で表示するサンプルを作ります。
◆ プログレス(円)の表示
ラベル:
Androidアプリ開発Tips
2012年7月19日木曜日
表示エリアを計算する
Displayでは画面の高さ・幅を取得しました。これで液晶のサイズはわかりますが、実際にはタイトルバーやステータスバーがありますので、使える領域はそれよりも狭くなります。
今回は実際に使える領域を求めるサンプルプログラムをご紹介しましょう。
今回は実際に使える領域を求めるサンプルプログラムをご紹介しましょう。
ラベル:
Androidアプリ開発Tips
2012年6月11日月曜日
ステータスバーを消す
アンテナやバッテリーのアイコンなどが表示されているエリアはステータスバーといいます。
通常はこういった情報も表示させておきたいものですが、タイトルバー同様、デザインの関係で非表示にしたい場合もあるでしょう。
今回はステータスバーを非表示にしてみます。
StatusBarTest1aActivity.java
通常はこういった情報も表示させておきたいものですが、タイトルバー同様、デザインの関係で非表示にしたい場合もあるでしょう。
今回はステータスバーを非表示にしてみます。
StatusBarTest1aActivity.java
package jp.co.triware.samples.StatusBarTest1a; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.view.View.OnClickListener; import android.widget.Button; public class StatusBarTest1aActivity extends Activity { private boolean mbNoStatusBar = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.toggle_btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mbNoStatusBar = mbNoStatusBar ? false : true; if (mbNoStatusBar == true) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } } }); } }
ラベル:
Androidアプリ開発Tips
2012年5月28日月曜日
タイトルバーを消す
アプリのタイトルを表示しているところをタイトルバーといいます。
通常はタイトルバーを表示していますが、画面のデザイン性や、少しでも情報を多く表示したい場合には、タイトルバーを消したいと思うこともあるでしょう。
今回はそのタイトルバーを消すサンプルです。
TitleBarTest1aActivity.java
通常はタイトルバーを表示していますが、画面のデザイン性や、少しでも情報を多く表示したい場合には、タイトルバーを消したいと思うこともあるでしょう。
今回はそのタイトルバーを消すサンプルです。
TitleBarTest1aActivity.java
package jp.co.triware.samples.TitleBarTest1a; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.view.Window; import android.widget.Button; import android.widget.Toast; public class TitleBarTest1aActivity extends Activity { private static volatile boolean mbNoTitleBar = false; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (mbNoTitleBar == true) { requestWindowFeature(Window.FEATURE_NO_TITLE); } setContentView(R.layout.main); Button btn = (Button)findViewById(R.id.toggle_btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mbNoTitleBar = mbNoTitleBar ? false : true; Toast.makeText(getApplicationContext(), "TitleBar will be " + (mbNoTitleBar ? "hidden" : "shown"), Toast.LENGTH_SHORT).show(); } }); } }
ラベル:
Androidアプリ開発Tips
2012年5月14日月曜日
StringとStringBuffer
ログを出力する場合など、文字列を処理しますね。その際、どのように文字列を扱っているでしょうか。Stringで"+"を使って連結するケースが多いのではないでしょうか。理由はカンタンだから、でしょうね。これまでのサンプルもそうしてきました。
でも、そういう文字列処理自体があまりなかったり、実行される回数が少なければ特に問題は発生しないかもしれませんが、実はStringは効率がよくありません。効率よく処理するにはStringBufferを使います。
以下のサンプルでは、文字列の連結を200回繰り返す処理を、StringとStringBufferで実装しています。かかる時間とGC(ガベージ・コレクション)がどれだけ動くか比較してみてください。
なお、文字列連結前にSystem.gc()を2回呼び出していますが、これはなくても構いません。GCが動こうとしたタイミングでサンプルを実行すると、意図しないGCのログが出るので先に実行させています。
でも、そういう文字列処理自体があまりなかったり、実行される回数が少なければ特に問題は発生しないかもしれませんが、実はStringは効率がよくありません。効率よく処理するにはStringBufferを使います。
以下のサンプルでは、文字列の連結を200回繰り返す処理を、StringとStringBufferで実装しています。かかる時間とGC(ガベージ・コレクション)がどれだけ動くか比較してみてください。
なお、文字列連結前にSystem.gc()を2回呼び出していますが、これはなくても構いません。GCが動こうとしたタイミングでサンプルを実行すると、意図しないGCのログが出るので先に実行させています。
ラベル:
Androidアプリ開発Tips
2012年5月1日火曜日
Dialog (横幅を広げる)
Dialogでメッセージを表示させると、横幅いっぱいに表示しようとしたのにメッセージの長さ程度の幅のダイアログになってしまいました。今回はダイアログの横幅を広げます。
main.xml
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" > <Button android:id="@+id/normal_dialog_btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Normal Dialog" /> <Button android:id="@+id/wide_dialog_btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Wide Dialog" /> </LinearLayout>ボタンを2つ用意しています。「Normal Dialog」は普通にダイアログを表示して、「Wide Dialog」は横幅を広げてダイアログを表示するボタンです。
ラベル:
Androidアプリ開発Tips
2012年4月25日水曜日
Dialog
メッセージを表示するためにAlertDialogクラスや、進捗状況を示すProgressDialogクラス(STYLE_SPINNER/STYLE_HORIZONTAL)を使いました。日付や時刻を選択するDatePickerDialogクラスやTimePickerDialogクラスも使いましたね。
これらはDialogクラスを継承した派生クラスです。今回はDialogクラスを使ってメッセージを表示します。
まず、メイン画面です。
main.xml
これらはDialogクラスを継承した派生クラスです。今回はDialogクラスを使ってメッセージを表示します。
まず、メイン画面です。
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" > <Button android:id="@+id/open_dialog_btn" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Open Dialog" /> </LinearLayout>ボタンをひとつ用意しています。
ラベル:
Androidアプリ開発Tips
2012年4月18日水曜日
Activityの呼び出し(4)
アクティビティに値を渡す方法は前回紹介しましたので、今回はその逆、呼び出したアクティビティから値を受け取る方法を紹介します。
呼び出し元は、前々回の「Activityの呼び出し(2)」と同じく、startActivityForResult()とonActivityResult()を使います。
いつもとは順番が違いますが、まず呼び出される側のソースから。
SubActivity.java
呼び出し元は、前々回の「Activityの呼び出し(2)」と同じく、startActivityForResult()とonActivityResult()を使います。
いつもとは順番が違いますが、まず呼び出される側のソースから。
SubActivity.java
package jp.co.triware.samples.ActivityTest4a; import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.view.View; import android.widget.Button; import android.widget.EditText; public class SubActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub); Intent intent = getIntent(); String pkg = getPackageName(); String buf = intent.getStringExtra(pkg + ".input"); EditText et = (EditText)findViewById(R.id.text_et); et.setText(buf); Button btnClose = (Button)findViewById(R.id.close_btn); btnClose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText et = (EditText)findViewById(R.id.text_et); String buf = et.getText().toString(); Intent intent = new Intent(); String pkg = getPackageName(); intent.putExtra(pkg + ".return", buf); setResult(RESULT_OK, intent); finish(); } }); } }
ラベル:
Androidアプリ開発Tips
2012年4月11日水曜日
Activityの呼び出し(3)
アクティビティを呼び出したり、アクティビティから戻り値を取得する方法は、前回までに説明しました。
今回は、呼び出した先のアクティビティに値を渡す方法を紹介します。
値を渡すには、インテント(のインスタンス)に値をセットしてstartActivity()やstartActivityForResult()を呼び出します。インテントに値をセットする方法は、putExtra()メソッドに数値や文字列、配列等を、キーワードと共に指定します。
以下は、テキストを入力して、それを別のアクティビティで表示するサンプルです。
ActivityTest3aActivity.java
今回は、呼び出した先のアクティビティに値を渡す方法を紹介します。
値を渡すには、インテント(のインスタンス)に値をセットしてstartActivity()やstartActivityForResult()を呼び出します。インテントに値をセットする方法は、putExtra()メソッドに数値や文字列、配列等を、キーワードと共に指定します。
以下は、テキストを入力して、それを別のアクティビティで表示するサンプルです。
ActivityTest3aActivity.java
package jp.co.triware.samples.ActivityTest3a; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class ActivityTest3aActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen = (Button)findViewById(R.id.open_btn); btnOpen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText et = (EditText)findViewById(R.id.text_et); String buf = et.getText().toString(); Intent intent = new Intent(); intent.setClass(getApplicationContext(), SubActivity.class); String pkg = getPackageName(); intent.putExtra(pkg + ".input", buf); startActivity(intent); } }); } }
ラベル:
Androidアプリ開発Tips
2012年4月4日水曜日
Activityの呼び出し(2)
アクティビティを呼び出すにはstartActivity()メソッドを使いました。これは単純にアクティビティを呼び出すだけのものでした。
呼び出した先のアクティビティが終了した状況、例えば一通りの処理が完了して終了したのか、キャンセルして終了したのかを知りたい時は、startActivityForResult()メソッドを使います。
ActivityTest2aActivity.java
呼び出した先のアクティビティが終了した状況、例えば一通りの処理が完了して終了したのか、キャンセルして終了したのかを知りたい時は、startActivityForResult()メソッドを使います。
ActivityTest2aActivity.java
package jp.co.triware.samples.ActivityTest2a; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.Toast; public class ActivityTest2aActivity extends Activity { private static final String TAG = "MainActivity"; private static final int REQUEST_SUB_ACTIVITY = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen = (Button)findViewById(R.id.open_btn); btnOpen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG, "OPEN button clicked!"); Intent intent = new Intent(); intent.setClass(getApplicationContext(), SubActivity.class); startActivityForResult(intent, REQUEST_SUB_ACTIVITY); Log.d(TAG, "after startActivityForResult()"); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == REQUEST_SUB_ACTIVITY) { String buf = "Unknown"; switch (resultCode) { case RESULT_OK: buf = "OK"; break; case RESULT_CANCELED: buf = "Cancel"; break; default: break; } Log.d(TAG, "onActivityResult: " + buf); Toast.makeText(getApplicationContext(), buf, Toast.LENGTH_LONG).show(); } } }
ラベル:
Androidアプリ開発Tips
2012年3月28日水曜日
Activityの呼び出し(1)
これまでのサンプルは1つのアクティビティ(画面)を使ったものばかりでした。今回はアクティビティを切り替えてみます。
まずは単純にアクティビティを切り替えるだけ。データの受け渡し等は考慮しないパターンです。Intentクラスでどのアクティビティを呼ぶか設定して、startActivity()メソッドでそのアクティビティを呼び出します。
ActivityTest1aActivity.java
まずは単純にアクティビティを切り替えるだけ。データの受け渡し等は考慮しないパターンです。Intentクラスでどのアクティビティを呼ぶか設定して、startActivity()メソッドでそのアクティビティを呼び出します。
ActivityTest1aActivity.java
package jp.co.triware.samples.ActivityTest1a; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; public class ActivityTest1aActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btnOpen = (Button)findViewById(R.id.open_btn); btnOpen.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), SubActivity.class); startActivity(intent); } }); } }
ラベル:
Androidアプリ開発Tips
2012年3月19日月曜日
TableLayout
前回のシステム情報はログ出力で確認しましたので、デバッガがないと確認できませんでした。これを画面に表示させてみましょう。
これまで表示系のサンプルはLinearLayoutを使ってきましたが、表のようなものは「TableLayout」を使うと便利です。
実行結果
Radioの行の列同士がくっついてしまいましたが、これはマージンやパディングを指定していないので、表示領域いっぱいに書いてしまうとこうなります。この辺りの対策方法はまた別途。
黄色の行はクラス名を表示するということで、2つの列を結合して、目立つように色も変更しました。それ以外は各行は2列、右の列は折りたたんで全体を表示するようにしています。
では、まずレイアウトファイルをどう記述するか見てみましょう。
これまで表示系のサンプルはLinearLayoutを使ってきましたが、表のようなものは「TableLayout」を使うと便利です。
実行結果
Radioの行の列同士がくっついてしまいましたが、これはマージンやパディングを指定していないので、表示領域いっぱいに書いてしまうとこうなります。この辺りの対策方法はまた別途。
黄色の行はクラス名を表示するということで、2つの列を結合して、目立つように色も変更しました。それ以外は各行は2列、右の列は折りたたんで全体を表示するようにしています。
では、まずレイアウトファイルをどう記述するか見てみましょう。
ラベル:
Androidアプリ開発Tips
2012年3月8日木曜日
システム情報
前々回、APIレベルやOSのバージョンの話をしましたので、今回はOSのシステム情報(システムのビルド情報)を取得する方法について書いてみます。
システム情報はBuildクラスを参照します。Build.VERSIONクラスでは、OSバージョンやAPIレベルを取得できます。バージョンによってフィールド(プロパティ)が追加されていたり、フィールドの代わりにメソッドを使うことが推奨されています。手元の端末のバージョンに応じて、使えるフィールドだけ参照すればいいのですがそれでは汎用的ではありません。いつもはプロジェクトの設定はAndroid 2.1以降で使えるようにしていますが、それではAndroid 2.2や4.0で追加されたものが使えませんので、今回はどのバージョンでも動くようにビルドします。
Androidプロジェクトの設定
システム情報はBuildクラスを参照します。Build.VERSIONクラスでは、OSバージョンやAPIレベルを取得できます。バージョンによってフィールド(プロパティ)が追加されていたり、フィールドの代わりにメソッドを使うことが推奨されています。手元の端末のバージョンに応じて、使えるフィールドだけ参照すればいいのですがそれでは汎用的ではありません。いつもはプロジェクトの設定はAndroid 2.1以降で使えるようにしていますが、それではAndroid 2.2や4.0で追加されたものが使えませんので、今回はどのバージョンでも動くようにビルドします。
Androidプロジェクトの設定
ビルドターゲットにAndroid 4.0を、最小SDKバージョンには1を指定しています。最小SDKバージョンを指定しないとビルドターゲットで指定したバージョン以降(今回であれば、API Level 14、Android 4.0以降)でしか動かなくなりますのでご注意を。
プロジェクト名: BuildInfoTest1 ビルドターゲット: Android 4.0 アプリケーション名: BuildInfoTest1 パッケージ名: jp.co.triware.samples.BuildInfoTest1 アクティビティーの作成: BuildInfoTest1Activity 最小SDKバージョン: 1
ラベル:
Androidアプリ開発Tips
2012年2月29日水曜日
Android SDKのアップデート
今後の記事では、Android 4.0を対象に含めることにしますので、開発環境をアップデートしておきます。以下手順を説明します。
◆ SDKのアップデート
◆ SDKのアップデート
- [ヘルプ]メニューから[新規ソフトウェアのインストール]を選択します。
ラベル:
Androidアプリ開発Tips
2012年2月21日火曜日
APIレベル
Android 2.3の端末が大部分を占め、Android 4.0の端末がまだ数えるほどしかないという状況ですが、早くもAndroid 5.0が6月に発表されるらしいというニュースが流れていました。
バージョンがあがってきて、APIレベルの数も増えてきましたので、OS (Android)のバージョンとAPIのバージョン(APIレベル)を表にまとめてみました。
ECLAIR、GINGERBREAD、HONEYCOMB、それにICE_CREAM_SANDWICHの後ろの「MR」は「Maintenance Release」の略で、不具合が修正されたバージョンです。
こうやってリリース時期もまとめてみると、2.xはスマートフォン向け、3.xはタブレットに特化、4.xでスマートフォンとタブレットを融合、という時期だったので、2011年は慌しい年でしたね。
参考:
http://developer.android.com/guide/appendix/api-levels.html
http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
バージョンがあがってきて、APIレベルの数も増えてきましたので、OS (Android)のバージョンとAPIのバージョン(APIレベル)を表にまとめてみました。
リリース | OSバージョン | API レベル | 開発コード | バージョンコード |
---|---|---|---|---|
2008/10 | Android 1.0 | 1 | 非公開 | BASE |
2009/02 | Android 1.1 | 2 | 非公開 | BASE_1_1 |
2009/05 | Android 1.5 | 3 | Cupcake | CUPCAKE |
2009/09 | Android 1.6 | 4 | Donut | DONUT |
2009/11 | Android 2.0 | 5 | Eclair | ECLAIR |
2009/12 | Android 2.0.1 | 6 | ECLAIR_0_1 | |
2010/01 | Android 2.1.x | 7 | ECLAIR_MR1 | |
2010/06 | Android 2.2.x | 8 | Froyo | FROYO |
2010/11 | Android 2.3 | 9 | Gingerbread | GINGERBREAD |
Android 2.3.1 | ||||
Android 2.3.2 | ||||
2011/02 | Android 2.3.3 | 10 | GINGERBREAD_MR1 | |
Android 2.3.4 | ||||
2011/02 | Android 3.0.x | 11 | Honeycomb | HONEYCOMB |
2011/05 | Android 3.1.x | 12 | HONEYCOMB_MR1 | |
2011/06 | Android 3.2 | 13 | HONEYCOMB_MR2 | |
2011/10 | Android 4.0 | 14 | Ice Cream Sandwich | ICE_CREAM_SANDWICH |
Android 4.0.1 | ||||
Android 4.0.2 | ||||
2011/12? | Android 4.0.3 | 15 | ICE_CREAM_SANDWICH_MR1 | |
: : | : : | : : | : : | : : |
2012/?? | Android 5.0 | ?? | (Jelly Bean) | ??? |
ECLAIR、GINGERBREAD、HONEYCOMB、それにICE_CREAM_SANDWICHの後ろの「MR」は「Maintenance Release」の略で、不具合が修正されたバージョンです。
こうやってリリース時期もまとめてみると、2.xはスマートフォン向け、3.xはタブレットに特化、4.xでスマートフォンとタブレットを融合、という時期だったので、2011年は慌しい年でしたね。
参考:
http://developer.android.com/guide/appendix/api-levels.html
http://developer.android.com/reference/android/os/Build.VERSION_CODES.html
ラベル:
Androidアプリ開発Tips
2012年2月6日月曜日
2012年2月2日木曜日
Toast (表示位置変更)
Toastは、普通は画面の下のほうにメッセージを表示します。
今回はこの表示位置を変えてみましょう。
◆ Toast表示位置変更
Toastの表示位置を変更するにはsetGravity()メソッドを使います。
以下のサンプルではクリックしたボタンによって表示位置を変えています。四隅に表示する際のY座標だけオフセットを指定してみました。
今回はこの表示位置を変えてみましょう。
◆ Toast表示位置変更
Toastの表示位置を変更するにはsetGravity()メソッドを使います。
void android.widget.Toast.setGravity(int gravity, int xOffset, int yOffset);gravityにはGravityクラスの定数、TOP/BOTTOM/LEFT/RIGHT等を指定します。例えば「左上」に表示したい場合はTOPとLEFTのOR値を指定します。xOffsetとyOffsetは、X座標とY座標のオフセットです。
以下のサンプルではクリックしたボタンによって表示位置を変えています。四隅に表示する際のY座標だけオフセットを指定してみました。
ラベル:
Androidアプリ開発Tips
2012年2月1日水曜日
インド料理サンタナ
今日は客先に出かけた後、同僚と2人でインド料理を食べながらミーティングです。
JR大和路線郡山駅西側ロータリーの向かいにあるインド料理のサンタナというお店です。
ビルの2階にあり、細い階段を上がるとそのお店があります。
JR大和路線郡山駅西側ロータリーの向かいにあるインド料理のサンタナというお店です。
ビルの2階にあり、細い階段を上がるとそのお店があります。
2012年1月27日金曜日
イルミナイト万博 X'mas
昨年の話題になりますが、万博記念公園のイルミナイト万博に行って来ました。
記事を書き忘れていたので、1ヶ月が過ぎてしまいましたが、少し紹介しておこうと思います。
イルミナイト万博は万博記念公園で毎年行われるクリスマスイベントです。今回で5回目の開催となります。以前、1回目に開催されたときにも行ったのですが、そのときに比べてかなり規模が拡大されていました。第5回目を迎える今回は岡本太郎生誕100周年を記念して岡本太郎作品やクリスマスにちなんだ映像のを太陽の塔に3D映像として映すビームペインティングが行われるとあったので、行って来たわけです。
大阪モノレールの万博記念公園駅を出て、改札からのスロープを歩いているとちょうど太陽の塔にカウントダウンの映像がビームペインティングされ始めたところでした。
記事を書き忘れていたので、1ヶ月が過ぎてしまいましたが、少し紹介しておこうと思います。
イルミナイト万博は万博記念公園で毎年行われるクリスマスイベントです。今回で5回目の開催となります。以前、1回目に開催されたときにも行ったのですが、そのときに比べてかなり規模が拡大されていました。第5回目を迎える今回は岡本太郎生誕100周年を記念して岡本太郎作品やクリスマスにちなんだ映像のを太陽の塔に3D映像として映すビームペインティングが行われるとあったので、行って来たわけです。
大阪モノレールの万博記念公園駅を出て、改札からのスロープを歩いているとちょうど太陽の塔にカウントダウンの映像がビームペインティングされ始めたところでした。
2012年1月24日火曜日
TimePickerDialog
時刻を指定したい場合は、TimePickerDialog (時刻選択ダイアログ)を使います。使い方は前回のDatePickerDialogとほとんど同じです。
◆ TimePickerDialog
TimePickerDialogで選択した時刻を画面に表示するサンプルです。
Androidプロジェクトの設定
◆ TimePickerDialog
TimePickerDialogで選択した時刻を画面に表示するサンプルです。
Androidプロジェクトの設定
プロジェクト名: TimePickerDialogTest1a ビルドターゲット: Android 2.1-update1 アプリケーション名: TimePickerDialogTest1a パッケージ名: jp.co.triware.samples.TimePickerDialogTest1a アクティビティーの作成: TimePickerDialogTest1aActivity 最小SDKバージョン: 7
ラベル:
Androidアプリ開発Tips
2012年1月19日木曜日
DatePickerDialog
日付を指定したい場合は、DatePickerDialog (日付選択ダイアログ)を使います。年・月・日を直接入力したり、1ずつアップ/ダウンして、日付を指定します。
◆ DatePickerDialog
DatePickerDialogで選択した日付を画面に表示するサンプルです。
Androidプロジェクトの設定
◆ DatePickerDialog
DatePickerDialogで選択した日付を画面に表示するサンプルです。
Androidプロジェクトの設定
プロジェクト名: DatePickerDialogTest1a ビルドターゲット: Android 2.1-update1 アプリケーション名: DatePickerDialogTest1a パッケージ名: jp.co.triware.samples.DatePickerDialogTest1a アクティビティーの作成: DatePickerDialogTest1aActivity 最小SDKバージョン: 7
ラベル:
Androidアプリ開発Tips
2012年1月13日金曜日
OptionsMenu (SubMenu #2)
前回のサブメニューのサンプルに少し手を加えて、メニュー項目にチェックボックスやラジオボタンをつけてみましょう。
◆ サブメニュー(チェックボックスとラジオボタン)
元のソースは前回のOptionsMenuTest2a.javaです。
"Agenda"のサブメニューにチェックボックスをつけて、有効なメニュー項目と無効なメニュー項目を指定するようにします。"Calendar"のサブメニューをグループ化して、どれかひとつを選択するようにします。これはラジオボタンが表示されます。
◆ サブメニュー(チェックボックスとラジオボタン)
元のソースは前回のOptionsMenuTest2a.javaです。
"Agenda"のサブメニューにチェックボックスをつけて、有効なメニュー項目と無効なメニュー項目を指定するようにします。"Calendar"のサブメニューをグループ化して、どれかひとつを選択するようにします。これはラジオボタンが表示されます。
ラベル:
Androidアプリ開発Tips
登録:
投稿 (Atom)