TabHostの備忘録

TabHost
概要

・android.widget.FrameLayout配下のリスナー
デザイン

    タブを表示させる。
    xmlでの記載方法。

    <TabHost
    android:id="@+id/tabHost1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    [ここに追加する]
    </TabHost>


    ここで、幅は親フォームに合わせている。
    "[ここに追加する]"の項目は以下のような内容を記載する。
    まず、タブを利用するための情報を記載する。

    <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:id="@+id/linearLayout1">
     <TabWidget
      android:id="@android:id/tabs"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"/>
      [ここに追加する2]
    </LinearLayout>


    "[ここに追加する2]"の項目は以下のように記載する。
    ここでタブの各ページを追加する。
    タブの各ページはLinearLayoutを利用している。

    <FrameLayout
     android:id="@android:id/tabcontent"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:minWidth="25px"
     android:minHeight="25px">
     <LinearLayout
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/linearLayout_tab1">
     </LinearLayout>
     <LinearLayout
      android:orientation="vertical"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:id="@+id/linearLayout_tab2">
     </LinearLayout>
     <FrameLayout>


    レイアウトだけでは、タブの表示がうまくいかないため、
    動作を定義する必要がある。
    methods

      タブの設定方法。
      OnCreate(Bundle savedInstanceState) 中にタブの表示方法を定義する。

      (Resource.Id.tabHost1);
      tabHost.Setup();
      TabHost.TabSpec tabSpec1 = tabHost.NewTabSpec("tab1"); //─1
      tabSpec1.SetIndicator("タブ1"); //─2
      tabSpec1.SetContent(Resource.Id.linearLayout_tab1); //─3
      TabHost.TabSpec tabSpec2 = tabHost.NewTabSpec("tab2");
      tabSpec2.SetIndicator("タブ2");
      tabSpec2.SetContent(Resource.Id.linearLayout_tab2);
      tabHost.AddTab(tabSpec1); //─4
      tabHost.AddTab(tabSpec2);
      tabHost.SetCurrentTabByTag("tab1"); //─5


      各処理の説明を記載する。

      1. タブの名前を設定する。

      2. タブの表示名を設定する。

      3. タブで表示するレイアウトを指定する。

      4. タブを追加する。

      5. 初期表示のタブを設定する。



      (Google Developersは こちら

      ---
      【更新履歴】
      180505:初期作成



広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2018年05月27日

MotionEventの使い方備忘録

MotionEvent
概要

・android.view.MotionEvent配下のリスナー
・入力イベントの取得
・・タッチ入力など

クラス図
android_hardware.png


呼び出し方

onCreate() 内で利用定義

<対象パーツ(スクリーン、ボタンなど)>.setOnTouchListener(new View.OnTouchListener(){
 public boolean onTouchEvent(MotionEvent event) {

 }
});

ここで、対象物を指定して、タッチ入力の取得が行える。
event に入力状況が保存されている。
例えば、以下のように値を取得することで、画面に「触れた」「放した」、指を「スライドさせた」などの動作を取得することができる。

event.getAction()

主要な取得可能な値

event から取得できる値を記載する。
マルチタッチに対応しており、複数の指の座標の取得が可能。
ただし、タッチ位置を取得するgetX()などの値には、1つの座標のみが取得可能。
スクリーンに初めに触れた指から0→1...と順に値が振られる。
スクリーンからすべての指を放した際に、振られた値はリセットされる。
(※マルチタッチ時は例外。放した指の値のみ解放される。)

  1. デバイス情報:getDevice
    例えば、amazonのfire8で取得される情報は以下のようなものである。

    Input Device(int) : 入力したデバイスのID。機器ごとに決まる。

    Descriptor(string) : 入力デバイスのディスクリプター

    Generation : デバイスの世代情報。fire8は"28"

    Location : fire8は"built-in"

    Keyboard Type : キーボード情報。タッチ入力の場合?"none"

    Has Vibrator : バイブ機能。タッチ入力の場合?"false"

    Source : タッチスクリーンの入力可能情報。
    ・AXIS_X: x方向(横、水平)のサイズ
    ・AXIS_Y: y方向(縦、垂直)のサイズ
    ・AXIS_PRESSURE: 感圧?
    ・AXIS_SIZE:
    ・AXIS_TOUCH_MAJIR:
    ・AXIS_TOUCH_MINOR:
    ・AXIS_TOOL_MAJIR:
    ・AXIS_TOOL_MINOR:


  2. x方向のタッチ位置:getX
    引数にintの値を入力することで、マルチタッチ時に複数の座標を取得することができる。
    例)event.getX(1)

  3. y方向のタッチ位置:getY

  4. タッチし始めた時間を取得:getDownTime
    デバイス内部のシステム起動時間

  5. タッチ動作:getAction
    それぞれ頭の[(int)]が返値。MotionEventの該当動作も記載。

    ・[0] MotionEvent.ACTION_DOWN : 指一本のみ触れた

    ・[1] MotionEvent.ACTION_UP : 指一本のみで触れていた場合、指を放した

    ・[2] MotionEvent.ACTION_MOVE : 指一本のみで触れていた場合、指を動かした

    ・[?] MotionEvent.ACTION_CANCEL : タッチ操作では呼ばれない?

    ・[5] ??? : 発生トリガー不明(複数本の指で触れていた時に、放すと取得されることもある)

    ・[6] ??? : 発生トリガー不明(複数本の指で触れていた時に、放すと取得されることもある)

    ・[261] ??? : 2本の指で触れた

    ・[262] ??? : 2本の指で触れていたときに、指を1本放した

    ・[517] ??? : 3本の指で触れた

    ・[518] ??? : 3本の指で触れていたときに、指を1本放した

    ・[773] ??? : 4本の指で触れた

    ・[774] ??? : 4本の指で触れていたときに、指を1本放した

    ・[1029] ??? : 5本の指で触れた

    ・[1030] ??? : 5本の指で触れていたときに、指を1本放した

    ・[1285] ??? : 6本の指で触れた

    ・[1541] ??? : 7本の指で触れた

    ・[1797] ??? : 8本の指で触れた

    ・[2053] ??? : 9本の指で触れた

    ・[2309] ??? : 10本の指で触れた

    など

恐らく、メインに利用するのは、このような値であろうと思われる。
基本的な使い方はgoogleのページに記載されているので、そちらを確認してもらった方が確実とは思う。

(Google Developersは こちら

---
【更新履歴】
180527:初期作成
180602:getActionの追記
180916:クラス図追加


ロリポップ!レンタルサーバー !はあなたの「やってみたい!」を応援します!

ロリポップ!なら、ホームページ、ブログ、ネットショップ…

これらが今すぐ、そして簡単にできちゃう!

マニュアルやライブチャットを完備しているので、ホームページ初心者でも安心。

これだけついてるのに月額100円(税抜)〜ととってもお得。

もちろん無料のお試し期間も10日間あるので安心ですね。


▼ロリポップ!レンタルサーバーはこちら

2018年05月06日

Intentの備忘録

Intent
概要

・android.content.Intent配下のリスナー
methods

    Androidでオブジェクト間の情報のやり取りを行う関数。
    画面遷移やバッテリ情報の取得が可能。

    IntentFilter intentFilter = new IntentFilter(Intent.ActionBatteryChanged);
    Intent intent = this.RegisterReceiver(null, intentFilter);
    int batteryLevel = intent.GetIntExtra(BatteryManager.ExtraLevel, -1);


    バッテリーの残量表示の例。

    (Google Developersは こちら

    ---
    【更新履歴】
    180506:初期作成

    ---
    【追記予定】
    Intentの追記
    IntentFilterの新規作成



Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: