子Viewの実装の有無に関わらず、親となるViewGroupでタッチイベントを取得したい時ってありますよね。
そんな時に便利なのがViewGroup#onInterceptTouchEventというメソッド。
これを利用するには下のサンプルのようにViewGroupを継承した独自ViewGroupクラスを作成し、その中のonInterceptTouchEventを上書きする必要があります。
ひとまず流れだけ。
ちなみにこれをXMLから指定する場合は
こんな感じで使います。
2011/10/15
2011/10/10
LayoutInflaterでツボにはまる
LayoutInflaterを利用する際は
こんな感じで利用していると思いますが、ここで落とし穴。
item.xml
こんな風に指定してあったパラメーターが実際の表示上では こんなことに。。。
面倒臭くてもinflateでmatch_parent(fill_parent)パラメーターが必要なViewをもってくる時は、第2引数の親となるViewGroupをきっちり指定しましょう。
LayoutInflater#inflate(int resource, ViewGroup root, boolean attachToRoot)
これの第2引数ViewGroupにnullを指定すると、item.xmlのパラメーターが自動でwrap_contentになってしまう。item.xml
こんな風に指定してあったパラメーターが実際の表示上では こんなことに。。。
面倒臭くてもinflateでmatch_parent(fill_parent)パラメーターが必要なViewをもってくる時は、第2引数の親となるViewGroupをきっちり指定しましょう。
2011/09/25
Windowsでメーカー製USBドライバーを利用せずにADBで接続する
Windowsで利用していると実機を認識させるのにUSBドライバーを毎回インストールするのは面倒臭いです。
実際はメーカーのUSBドライバーを利用せずとも、Android SDKで入手できるGoogle製のドライバーを数行書き換えるだけで利用できるらしいです。
...android-sdk\extras\google\usb_driver
に「android_winusb.inf」というファイルがありますが、これに2行ほど加えるだけ。
まずは端末のハードウェアIDを確認します。
認識させたい端末を接続するとデバイスマネージャー上で不明なデバイスとして登録されているはずです。プロパティー>詳細>ハードウェアIDを確認すると
こんな文字列が得られます。
今回必要なのは
USB\VID_04DD&PID_939A&REV_0100&MI_01
この部分です。
上に記したandroid_winusb.infを開くと こんな文字列が見られるかと思います。,
ここに こんな感じで2行書き加えればOKです。
ちなみにこれは64ビット版Windowsの場合ですので、32ビット版を利用中の場合は[Google.NTx86]下に書き加え。。。た方がいいかもしれません?(未検証)
これを書き加えたらデバイスマネージャーから手動で上記フォルダーを指定してドライバーのインストールをすれば終了です。
実際はメーカーのUSBドライバーを利用せずとも、Android SDKで入手できるGoogle製のドライバーを数行書き換えるだけで利用できるらしいです。
...android-sdk\extras\google\usb_driver
に「android_winusb.inf」というファイルがありますが、これに2行ほど加えるだけ。
まずは端末のハードウェアIDを確認します。
認識させたい端末を接続するとデバイスマネージャー上で不明なデバイスとして登録されているはずです。プロパティー>詳細>ハードウェアIDを確認すると
こんな文字列が得られます。
今回必要なのは
USB\VID_04DD&PID_939A&REV_0100&MI_01
この部分です。
上に記したandroid_winusb.infを開くと こんな文字列が見られるかと思います。,
ここに こんな感じで2行書き加えればOKです。
ちなみにこれは64ビット版Windowsの場合ですので、32ビット版を利用中の場合は[Google.NTx86]下に書き加え。。。た方がいいかもしれません?(未検証)
これを書き加えたらデバイスマネージャーから手動で上記フォルダーを指定してドライバーのインストールをすれば終了です。
登録:
投稿 (Atom)
