2012年11月25日日曜日

Androidアプリ プロジェクトの作成(Eclipse 4.2 & SDK r20)

前回、SDKのインストールを紹介しましたので、今回はEclipse環境(Eclipse 4.2 Juno)でのプロジェクト作成方法について紹介します。なお、Eclipseのインストールについては以前の記事をご覧下さい。

今回使用した環境
Eclipse4.2 Juno (Pleiades All in One)
Andriod SDK20.0.3
ADT20.0.3

2012年11月16日金曜日

インストーラーを使ったAndroid SDKインストール

以前、Android開発環境インストール手順の記事中で、Android SDKのインストール手順を説明しました。
その時はZIPファイルを使いましたが、今回はインストーラーを使った手順を説明します。

2012年11月7日水曜日

通知(Notification) #7 (プログレスバー)

今回は通知エリアにプログレスバーを表示します。プログレスバーがあると、ユーザーがいつまで待てばいいのかわかりますので有効な方法ですね。

なお、今回のサンプルプログラムはAPI Level 14 (Android 4.0)以降を対象としています。

2012年10月18日木曜日

通知(Notification) #6 (アクティビティ呼出)

これまでNotificationを使って、アプリケーションの情報をユーザーに通知する方法を説明してきました。
今回は通知エリアに表示された通知をクリックしてアクティビティを呼び出すようにしてみます。

以下は、自アクティビティを呼ぶサンプルです。

通知(Notification)」のサンプル、NotificationTest1aActivity.javaをベースに作りました。

2012年10月12日金曜日

タイトルバーの文字列をセンタリング

通常タイトルバーは左寄せで表示されることが多いですが、タイトルバーのレイアウトを XML で定義して変更することが可能です。今回は、タイトルバーの文字列をセンタリングしてみましょう。

2012年10月1日月曜日

通知(Notification) #5 (Clear対象外)

通知エリアの「Clear」ボタンを押すと、「通知」はすべて消去されてしまいます。ユーザーに確実に知ってもらいたいような重要な通知は、ユーザーがそれをクリックするまで残しておきたいものです。

そこで今回は通知エリアの「Clear」ボタンを押しても通知が消去されないようにするサンプルプログラムを紹介します。


通知(Notification) #5 (Clear対象外)

前回に引き続き、今回も主役はNotificationのフラグです。
Notify #1はこれまでと同じで、通知エリアの「Clear」ボタンで消去されます。
Notify #2が選択された場合は、フラグ(FLAG_NO_CLEAR)をセットして、消去されないようにします。

2012年9月26日水曜日

通知(Notification) #4 (クリックでキャンセル)

前回は、通知エリアの「Clear」ボタンの他に、アプリケーションから通知を消去する方法について説明しました。プログラムからタイミングを見計らって消去するにはこの方法でいいのですが、実際にはユーザーが「確認したので消したい」というケースも多いはずです。

今回は、通知エリアに表示された通知をクリックすることで、その通知を消去するサンプルプログラムを紹介します。


通知(Notification) #4 (クリックでキャンセル)

前回、通知を「実行中」にするために、Notificationのフラグを変更しました。今回もこのフラグを変更することで、通知をクリックするとキャンセルできるようになります。

2012年9月18日火曜日

通知(Notification) #3 (実行中/キャンセル)

Notificationは、実行結果を「通知」する以外に、「実行中」であることを示すこともできます。

これはAndroid 2.2英語版での例です。"Ongoing"が「実行中」、"Notifications"が「通知」です。

2012年9月11日火曜日

通知(Notification) #2

前回の記事で、複数の通知について少しだけ触れました。今回はその確認をしてみましょう。

通常はひとつのアプリケーションでは最新の通知だけを表示する場合が多いと思いますが、例えばGoogle Playのように、インストールやアップデートした結果をアプリケーションごとに表示したい場合は、複数の通知を行います。


通知(Notification) #2

複数の通知はIDをユニークにすれば可能です。以下のサンプルプログラムでは、2つの通知ができるように、IDを2種類用意します。どちらの通知を使うかはラジオボタンで選択して、通知のIDには選択したラジオボタンのリソースIDを流用します。

2012年9月3日月曜日

通知(Notification)

ステータスバーや通知エリアに通知を表示するには、NofiticationクラスとNotificationManagerクラスを使います。


通知(Notification)
以下は、入力したテキストを通知するサンプルプログラムです。

2012年8月24日金曜日

タイトルバー文字列の変更

通常タイトルバーにはstrings.xml内のapp_nameに指定されている文字列(アプリケーション名)が表示されますが、この文字列の変更が可能です。今回はタイトルバーの文字列を一時的に変更してみることにします。


タイトルバー文字列の変更



サンプルプログラムは「タイトルバーにプログレス(バー)の表示」で作成したプログラムをもとに作成します。当該プログラムではタイトルバーにプログレスバーを表示しますが、その間にタイトルバー文字列の後に続けて進捗率を示すパーセンテージを表示します。

2012年8月17日金曜日

タイトルバーにプログレス(縞模様バー)の表示

タイトルバーへのプログレス表示の初回タイトルバーにプログレス(円)の表示で、時間や処理量が不確定の場合の表示に使用するサンプルを紹介しましたが、この場合の表示としてもう一つ別の表現方法があります。
同様にタイトルバーに表示を行うのですが、円ではなく縞模様のバーで表示する方法です。


プログレス(縞模様バー)の表示


それではこのサンプルを作成してみましょう。

2012年8月9日木曜日

タイトルバーにプログレス(バー)の表示(セカンダリ)

前回からの続きです。

前回は進捗率を示して表示を行う「バー」のプログレスを紹介しました。こちらはセカンダリプログレスバーを使ったサンプルです。プログレスバーに加え、セカンダリプログレスバーを表示しています。先行して処理しているものの進捗状況について、セカンダリ値に指定すると、プログレスバーより薄めの色で進捗状況を表示します。


プログレス(バー)の表示(セカンダリ)


2012年8月2日木曜日

タイトルバーにプログレス(バー)の表示

前回からの続きです。

前回は時間や処理量が不確定の場合に使用する「円」のプログレスをご紹介しました。今回は進捗率を示して表示を行う「バー」のプログレスをタイトルバーに表示してみます。


プログレス(バー)の表示


2012年7月26日木曜日

タイトルバーにプログレス(円)の表示

以前に作業中であることを示すための方法として「ProgressDialog(円)」と「ProgressDialog(バー)」を紹介しました。

今回はこれらの情報をタイトルバーに表示してみることにします。
タイトルバーへのプログレス表示ですが、ProgressDialogでも説明しましたように、作業中であることを表現する方法は2つあります。時間や処理量が不確定の場合に表示するもの、もうひとつは進捗率を示して表示するものです。これからこれらそれぞれの場合について4種類のサンプルを作成していきたいと思います。

 円
 時間や処理量が不確定
 バー
 進捗率を示す
 バー(セカンダリ) 
 進捗率を示す
 バー(縞模様)
 時間や処理量が不確定

一つ目として、今回は時間や処理量が不確定の場合に円で表示するサンプルを作ります。


プログレス(円)の表示

2012年7月19日木曜日

表示エリアを計算する

Displayでは画面の高さ・幅を取得しました。これで液晶のサイズはわかりますが、実際にはタイトルバーステータスバーがありますので、使える領域はそれよりも狭くなります。

今回は実際に使える領域を求めるサンプルプログラムをご紹介しましょう。

2012年6月11日月曜日

ステータスバーを消す

アンテナやバッテリーのアイコンなどが表示されているエリアはステータスバーといいます。

通常はこういった情報も表示させておきたいものですが、タイトルバー同様、デザインの関係で非表示にしたい場合もあるでしょう。

今回はステータスバーを非表示にしてみます。

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);
                }
            }
        });
    }
}

2012年5月28日月曜日

タイトルバーを消す

アプリのタイトルを表示しているところをタイトルバーといいます。

通常はタイトルバーを表示していますが、画面のデザイン性や、少しでも情報を多く表示したい場合には、タイトルバーを消したいと思うこともあるでしょう。

今回はそのタイトルバーを消すサンプルです。

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();
            }
        });
    }
}

2012年5月14日月曜日

StringとStringBuffer

ログを出力する場合など、文字列を処理しますね。その際、どのように文字列を扱っているでしょうか。Stringで"+"を使って連結するケースが多いのではないでしょうか。理由はカンタンだから、でしょうね。これまでのサンプルもそうしてきました。

でも、そういう文字列処理自体があまりなかったり、実行される回数が少なければ特に問題は発生しないかもしれませんが、実はStringは効率がよくありません。効率よく処理するにはStringBufferを使います。

以下のサンプルでは、文字列の連結を200回繰り返す処理を、StringとStringBufferで実装しています。かかる時間とGC(ガベージ・コレクション)がどれだけ動くか比較してみてください。

なお、文字列連結前にSystem.gc()を2回呼び出していますが、これはなくても構いません。GCが動こうとしたタイミングでサンプルを実行すると、意図しないGCのログが出るので先に実行させています。

2012年5月1日火曜日

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/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」は横幅を広げてダイアログを表示するボタンです。

2012年4月25日水曜日

Dialog

メッセージを表示するためにAlertDialogクラスや、進捗状況を示すProgressDialogクラス(STYLE_SPINNER/STYLE_HORIZONTAL)を使いました。日付や時刻を選択するDatePickerDialogクラスやTimePickerDialogクラスも使いましたね。

これらは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>
ボタンをひとつ用意しています。

2012年4月18日水曜日

Activityの呼び出し(4)

アクティビティに値を渡す方法は前回紹介しましたので、今回はその逆、呼び出したアクティビティから値を受け取る方法を紹介します。

呼び出し元は、前々回の「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();
            }
        });
    }
}

2012年4月11日水曜日

Activityの呼び出し(3)

アクティビティを呼び出したり、アクティビティから戻り値を取得する方法は、前回までに説明しました。
今回は、呼び出した先のアクティビティに値を渡す方法を紹介します。

値を渡すには、インテント(のインスタンス)に値をセットして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);
            }
        });
    }
}

2012年4月4日水曜日

Activityの呼び出し(2)

アクティビティを呼び出すにはstartActivity()メソッドを使いました。これは単純にアクティビティを呼び出すだけのものでした。
呼び出した先のアクティビティが終了した状況、例えば一通りの処理が完了して終了したのか、キャンセルして終了したのかを知りたい時は、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();
        }
    }
}

2012年3月28日水曜日

Activityの呼び出し(1)

これまでのサンプルは1つのアクティビティ(画面)を使ったものばかりでした。今回はアクティビティを切り替えてみます。

まずは単純にアクティビティを切り替えるだけ。データの受け渡し等は考慮しないパターンです。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);
            }
        });
    }
}

2012年3月19日月曜日

TableLayout

前回のシステム情報はログ出力で確認しましたので、デバッガがないと確認できませんでした。これを画面に表示させてみましょう。
これまで表示系のサンプルはLinearLayoutを使ってきましたが、表のようなものは「TableLayout」を使うと便利です。

実行結果
Radioの行の列同士がくっついてしまいましたが、これはマージンやパディングを指定していないので、表示領域いっぱいに書いてしまうとこうなります。この辺りの対策方法はまた別途。

黄色の行はクラス名を表示するということで、2つの列を結合して、目立つように色も変更しました。それ以外は各行は2列、右の列は折りたたんで全体を表示するようにしています。

では、まずレイアウトファイルをどう記述するか見てみましょう。

2012年3月8日木曜日

システム情報

前々回、APIレベルやOSのバージョンの話をしましたので、今回はOSのシステム情報(システムのビルド情報)を取得する方法について書いてみます。

システム情報はBuildクラスを参照します。Build.VERSIONクラスでは、OSバージョンやAPIレベルを取得できます。バージョンによってフィールド(プロパティ)が追加されていたり、フィールドの代わりにメソッドを使うことが推奨されています。手元の端末のバージョンに応じて、使えるフィールドだけ参照すればいいのですがそれでは汎用的ではありません。いつもはプロジェクトの設定はAndroid 2.1以降で使えるようにしていますが、それではAndroid 2.2や4.0で追加されたものが使えませんので、今回はどのバージョンでも動くようにビルドします。

Androidプロジェクトの設定
プロジェクト名:BuildInfoTest1
ビルドターゲット:Android 4.0
アプリケーション名:BuildInfoTest1
パッケージ名:jp.co.triware.samples.BuildInfoTest1
アクティビティーの作成:BuildInfoTest1Activity
最小SDKバージョン:1
ビルドターゲットにAndroid 4.0を、最小SDKバージョンには1を指定しています。最小SDKバージョンを指定しないとビルドターゲットで指定したバージョン以降(今回であれば、API Level 14、Android 4.0以降)でしか動かなくなりますのでご注意を。

2012年2月29日水曜日

Android SDKのアップデート

今後の記事では、Android 4.0を対象に含めることにしますので、開発環境をアップデートしておきます。以下手順を説明します。

SDKのアップデート
  1. [ヘルプ]メニューから[新規ソフトウェアのインストール]を選択します。

2012年2月21日火曜日

APIレベル

Android 2.3の端末が大部分を占め、Android 4.0の端末がまだ数えるほどしかないという状況ですが、早くもAndroid 5.0が6月に発表されるらしいというニュースが流れていました。

バージョンがあがってきて、APIレベルの数も増えてきましたので、OS (Android)のバージョンとAPIのバージョン(APIレベル)を表にまとめてみました。

リリースOSバージョンAPI
レベル
開発コードバージョンコード
2008/10Android 1.01非公開BASE
2009/02Android 1.12非公開BASE_1_1
2009/05Android 1.53CupcakeCUPCAKE
2009/09Android 1.64DonutDONUT
2009/11Android 2.05EclairECLAIR
2009/12Android 2.0.16ECLAIR_0_1
2010/01Android 2.1.x7ECLAIR_MR1
2010/06Android 2.2.x8FroyoFROYO
2010/11Android 2.39GingerbreadGINGERBREAD
Android 2.3.1
Android 2.3.2
2011/02Android 2.3.310GINGERBREAD_MR1
Android 2.3.4
2011/02Android 3.0.x11HoneycombHONEYCOMB
2011/05Android 3.1.x12HONEYCOMB_MR1
2011/06Android 3.213HONEYCOMB_MR2
2011/10Android 4.014Ice Cream
Sandwich
ICE_CREAM_SANDWICH
Android 4.0.1
Android 4.0.2
2011/12?Android 4.0.315ICE_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

2012年2月6日月曜日

劇団四季「マンマ・ミーア!」


週末に以前から誘われていた劇団四季のミュージカル「マンマ・ミーア!」を観に行ってきました。劇団四季の京都劇場は駅ビルの関連施設の中にあり、大阪の劇場と共に、アクセス便利なところにあります。

2012年2月2日木曜日

Toast (表示位置変更)

Toastは、普通は画面の下のほうにメッセージを表示します。


今回はこの表示位置を変えてみましょう。


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座標だけオフセットを指定してみました。

2012年2月1日水曜日

インド料理サンタナ

今日は客先に出かけた後、同僚と2人でインド料理を食べながらミーティングです。
JR大和路線郡山駅西側ロータリーの向かいにあるインド料理のサンタナというお店です。
ビルの2階にあり、細い階段を上がるとそのお店があります。

2012年1月27日金曜日

イルミナイト万博 X'mas

昨年の話題になりますが、万博記念公園のイルミナイト万博に行って来ました。
記事を書き忘れていたので、1ヶ月が過ぎてしまいましたが、少し紹介しておこうと思います。

イルミナイト万博は万博記念公園で毎年行われるクリスマスイベントです。今回で5回目の開催となります。以前、1回目に開催されたときにも行ったのですが、そのときに比べてかなり規模が拡大されていました。第5回目を迎える今回は岡本太郎生誕100周年を記念して岡本太郎作品やクリスマスにちなんだ映像のを太陽の塔に3D映像として映すビームペインティングが行われるとあったので、行って来たわけです。

大阪モノレールの万博記念公園駅を出て、改札からのスロープを歩いているとちょうど太陽の塔にカウントダウンの映像がビームペインティングされ始めたところでした。

2012年1月24日火曜日

TimePickerDialog

時刻を指定したい場合は、TimePickerDialog (時刻選択ダイアログ)を使います。使い方は前回のDatePickerDialogとほとんど同じです。


TimePickerDialog

TimePickerDialogで選択した時刻を画面に表示するサンプルです。

Androidプロジェクトの設定
プロジェクト名:TimePickerDialogTest1a
ビルドターゲット:Android 2.1-update1
アプリケーション名:TimePickerDialogTest1a
パッケージ名:jp.co.triware.samples.TimePickerDialogTest1a
アクティビティーの作成:TimePickerDialogTest1aActivity
最小SDKバージョン:7

2012年1月19日木曜日

DatePickerDialog

日付を指定したい場合は、DatePickerDialog (日付選択ダイアログ)を使います。年・月・日を直接入力したり、1ずつアップ/ダウンして、日付を指定します。


DatePickerDialog

DatePickerDialogで選択した日付を画面に表示するサンプルです。

Androidプロジェクトの設定
プロジェクト名:DatePickerDialogTest1a
ビルドターゲット:Android 2.1-update1
アプリケーション名:DatePickerDialogTest1a
パッケージ名:jp.co.triware.samples.DatePickerDialogTest1a
アクティビティーの作成:DatePickerDialogTest1aActivity
最小SDKバージョン:7

2012年1月13日金曜日

OptionsMenu (SubMenu #2)

前回のサブメニューのサンプルに少し手を加えて、メニュー項目にチェックボックスやラジオボタンをつけてみましょう。


サブメニュー(チェックボックスとラジオボタン)

元のソースは前回のOptionsMenuTest2a.javaです。

"Agenda"のサブメニューにチェックボックスをつけて、有効なメニュー項目と無効なメニュー項目を指定するようにします。"Calendar"のサブメニューをグループ化して、どれかひとつを選択するようにします。これはラジオボタンが表示されます。