Browsing articles in "ユーザインターフェース"

TextViewの文字列をスクロールさせる

5月 22, 2011   //   by kseto   //   ユーザインターフェース  //  No Comments

TextViewに文字列が収まらない場合、文字列をスクロールさせることができます。
画面設計上、TextViewの文字列を複数行に渡って表示したくない場合に活用できます。

setEllipsizeメソッド

setEllipsizeメソッドはTextViewに文字列を表示しきれない場合、どのように文字列を省略表示するか設定するメソッドです。文字列をスクロールさせるほか、文字列の一部分を省略して表示するといったこともこのメソッドを使うことで行えます。

public void setEllipsize (TextUtils.TruncateAt where)

setEllipsizeメソッドに与えることができる設定値はTextUtils.TruncateAtクラスで定義されています。
スクロールも含めて以下の設定値が定義されています。

TextUtils.TruncateAt.START 文字列先頭を省略して表示します
TextUtils.TruncateAt.MIDDLE 文字列の真ん中を省略して表示します
TextUtils.TruncateAt.END 文字列終端を省略して表示します
TextUtils.TruncateAt.MARQUEE 文字列をスクロールして表示します

つづきからサンプルコードを紹介します。

Read more >>

タイトルバーをカスタマイズ(+非表示に)する

5月 14, 2011   //   by @mhidaka   //   ユーザインターフェース  //  No Comments

タイトルバーにアイコンを表示する ではタイトルバーに、アイコンを表示する方法を解説しました。今回は、アイコンだけではなくて、自由に表示内容を変える方法を紹介します。タイトルバーに関する主なカスタマイズは以下とおりです。

Window.FEATURE一覧(抜粋)

マクロ名 説明
Window.FEATURE_NO_TITLE タイトルバーを非表示にする
Window.FEATURE_CUSTOM_TITLE 任意のレイアウトファイルを設定する
Window.FEATURE_LEFT_ICON アイコン画像を付与する
Window.FEATURE_RIGHT_ICON アイコン画像を付与する


アイコン画像の付与(Window.FEATURE_LEFT_ICON、Window.FEATURE_RIGHT_ICON)については、タイトルバーにアイコンを表示するを参照してください。今回はWindow.FEATURE_NO_TITLEとWindow.FEATURE_CUSTOM_TITLEについて紹介します。
サンプルコードはGoogleCodeのこちらで公開しています

Windowクラスで定義されている上記の値は、Activity#requestWindowFeatureメソッドを利用してActivityに設定します。たとえば、タイトルバーを非表示にする場合は以下のように記述します。

タイトルバーを非表示にする

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //タイトルバーを非表示にする(setContentViewの前にすること)
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
    }

3行目のコメントにもあるようにActivity#requestWindowFeatureメソッドはsetContentViewメソッドの前に設定してください。順番を入れ替えると設定値が反映されません。

Activity#requestWindowFeatureメソッドはsetContentViewメソッドの前、つまりViewを有効化するまえに設定しないと効力を発揮しないんだよ!

Read more >>

ハードウェアキーを取得する

4月 27, 2011   //   by @mhidaka   //   デバイス, ユーザインターフェース  //  No Comments

今回は、Androidで定義されているキーの一覧を紹介します。Androidのハードウェアキーは、おおむね4つ、メニューキー、検索キー、戻るキー(Backキー)、ホームキー(HOMEキー)が有名です。
Android端末でのハードウェアキーの並びにガイドラインが無く自由なことから、キー配置はプラットフォームの「分断」の象徴として揶揄されています。
しかし、キーの種類に目を向けると(KeyEventで定義されているものは)、Androidの「自由」を象徴するように沢山の種類があります。

KeyEventで定義されているKeyCodeマクロは大まかに以下の6つに分類できます。

  • 専用キー(MENU/Search/Back/Homeなど)
  • ゲームパッド用ボタン
  • QWERTYキー
  • 十字キー
  • GoogleTVのようなテレビリモコン用のハードウェアキー
  • 音楽/動画の再生用のメディア制御ハードウェアキー

ゲームパッド用ボタンは、ゲーム用途を意識したAndroid端末(XperiaPlayなど)を考えており、今後のトレンドに備えたKeyCodeといえます。
参考:http://developer.android.com/reference/android/view/KeyEvent.html
※一般的なQWERTYキーについては説明を省略しています。上記KeyEventを参照してください。

サンプルコード:キーの取得方法

基本となるサンプルコードは以下の通りです。

    @Override
    public boolean dispatchKeyEvent(KeyEvent e) {

       // DOWNとUPが取得できるのでログの2重表示防止のためif
       if (e.getAction() == KeyEvent.ACTION_DOWN) {
    	   //キーコード表示
    	   Log.d("KeyCode","KeyCode:"+ e.getKeyCode());
       }

       return super.dispatchKeyEvent(e);
    }

Activity#dispatchKeyEventでキーのPushとReleaseを取得できます。

KeyEvent#getKeyCodeメソッドで取得したキーコードはKeyEvent.KEYCODE_BACKなど、KeyEventのマクロ定義と比較して判定してください。
TechBoosterではキー入力に関して、以下のような様々なテクニックを紹介しています。あわせてどうぞ。

 

代表的なハードウェアキー

代表的なハードウェアキーの一覧です。あまり使われていないキー(ヘッドセット等)も定義されています。またHOMEキーなど一部のハードウェアキーはアプリケーションで取得することができません。

ハードウェアキーのマクロ定義 概要
KEYCODE_APP_SWITCH アプリケーションの切り替え
KEYCODE_BACK バックキー
KEYCODE_CALL 通話キー
KEYCODE_CAMERA カメラ起動
KEYCODE_ENDCALL 終話キー
KEYCODE_ENVELOPE メール起動特殊キー
KEYCODE_EXPLORER ファイラ起動用特殊キー
KEYCODE_FOCUS カメラフォーカスキー
KEYCODE_HEADSETHOOK ヘッドセット割込キー
KEYCODE_HOME ホームキー
KEYCODE_MENU メニューキー
KEYCODE_POWER 電源キー
KEYCODE_SEARCH 検索キー
KEYCODE_SETTINGS 設定キー
KEYCODE_SWITCH_CHARSET 文字入力モード切替
KEYCODE_VOLUME_DOWN ボリュームDOWN
KEYCODE_VOLUME_MUTE ミュート
KEYCODE_VOLUME_UP ボリュームUP

以下、ゲームパッド、十字キー、メディア制御キー、テンキー、TVリモートなど特殊なキーコード一覧です。
Read more >>

Activityを透過する

4月 16, 2011   //   by UpDown-G   //   ユーザインターフェース, リソース  //  No Comments

Androidでは、Activityの背景を透明にすることで、透明な画面を作成することが可能です。

画面を透明にすることで、ダイアログのみ表示されているかのような画面や、まるで画面遷移していないかのように振る舞うことができます。

それでは続きをどうぞ

Read more >>

ScaleGestureDetectorを使ってピンチイン、ピンチアウトを認識する

4月 8, 2011   //   by kkato   //   ユーザインターフェース  //  No Comments

最近のAndroid端末はマルチタップに対応しているものが多いです。Android2.2(API 8)からはマルチタッチに対応したモーションジェスチャークラスも追加されました。

今回は、その2.2から追加されたScaleGestureDetectorクラスでマルチタップならではのピンチイン、ピンチアウトを認識する方法を説明します。

それでは続きへどうぞ

Read more >>

TextViewにWebサイトへのリンクを作成する

4月 2, 2011   //   by UpDown-G   //   ユーザインターフェース  //  No Comments

AndroidのViewの一つであるTextViewでは、WebサイトのURLメールアドレスに対してリンクを張ることが可能です。
今回は簡単な自己紹介画面を作成し、String型の文字列に定義したブログのURLやメールアドレスに、リンクを作成する方法をご紹介します。

続きをどうぞ

Read more >>

戻るキー(Backキー)を無効にする

3月 31, 2011   //   by kkato   //   ユーザインターフェース  //  1 Comment

今回は特定のキーを無効にする方法を説明します。

実際のアプリケーション開発においては、「戻る(Back)キーを無効にしたい」という場面が出てくると思います。

Androidの標準の動きとしては戻るキーを押すと現在のActivityが終了します。

しかし、戻るキーを押された時にすぐにActivityを終了させずにデータ保存の有無に関する確認ダイアログを出したい場面や、ゲームであればゲーム中に誤ってキーを押してゲームが中断することを防ぐために完全にハードウェアキーを無効にした方がよいこともあります。

以前、キーイベントを取得するで紹介したサンプルコードを少し修正するだけで実現可能です。
それでは続きでサンプルコードを説明します。
Read more >>

EditTextの入力制限を行う

3月 15, 2011   //   by @mhidaka   //   ユーザインターフェース  //  コメントは受け付けていません。

EditTextのInputType(入力制限/値のバリエーション指定)を紹介します。EditTextは ClipboardManagerを使用してテキストのコピーと貼り付けを行う(Android3.0版) や AlertDialogで文字を入力する(2) – カスタムダイアログ などUIを構成するウィジェットとしてなくてはならないコンポーネントです。

今回は入力制限/値のバリエーションについて、わかりやすく一覧表(後述)にまとめました。入力値の設定方法、使い方、サンプルコードは以下の通りです。

  • EditText#setInputType(int type)

EditText#setInputTypeメソッドを使い様々な入力規則、種類を表現することができます。引数int typeはandroid.text.InputTypeを使います。以下のサンプルのように複数の設定をOR演算で与えることが可能です(ビット演算可能)

パスワードの入力の場合: et.setInputType( InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_PASSWORD);

import android.text.InputType;

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

        EditText et = (EditText)findViewById(R.id.editText1);
        //パスワード入力
        et.setInputType( InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

    }

InputTypeまとめ

以下にInputTypeをClass、バリエーション、フラグでまとめました。続きからどうぞ

Read more >>

複数選択可能なリストを作成する

3月 5, 2011   //   by UpDown-G   //   ユーザインターフェース  //  No Comments

リストビューを使ってデータを一覧表示する にて、リストの基本的な使い方についてご説明しました。

Android3.0では、リストの要素の中から複数の項目を選択することが可能となっています。。
今回は、その方法についてご説明致します。

それでは続きをどうぞ。

Read more >>

DatePickerを使ってカレンダーから日付を選択する

3月 2, 2011   //   by kkato   //   ユーザインターフェース  //  No Comments

日付を入力するためのWidgetでDatePickerクラスがあります。このクラスはAPI Level 1から存在していますが、Honeycomb(API Level 11)で機能が追加されました。

今回はその変化点について説明します。

DatePickerは日付を入力するためのWidgetですが、API Level 10まではスピナー(Spinner)で日付を選択するものでしたがが、API Level 11からはCalendarViewクラスが追加されたこともあり、DatePickerでカレンダーを表示して日付を選択することが可能になりました。

3.0以前

3.0以降

それでは続きで説明します。

Read more >>

ページ:«12345678910»

技術書新刊 発売中

アンドロイドアカデミアには、CIやテスト、互換検証など実務に生きるノウハウをあつめています

技術書新刊 発売中

Android Next!はAndroid 7.0に対応したはじめての技術書です!


The Web Explorer 2はCSSの中央寄せやWebAudioなど未来を読み解く一冊です


Revised TypeScript in DefinitelylandはTypeScript 2.0(β)に対応した解説書です。インストールから型定義まで幅広くサポートしています


技術書をかこう!はエンジニアらしい執筆環境を構築、HowTo本です