ティッカー風ウィジェットを作ってみる【AppWidget】
こんにちは。harukaです。
前回、アドレス帳作成の過程を紹介します!と意気込んだのですが、
アドレス帳よりも遊び心あるティッカーを載せたい!と思い、予定を変更して
今回はティッカーもどきの作り方を紹介します。
具体的にはこんな感じになります。↓↓
わかりにくいかもしれませんが、文字が動いています。
ではこれから具体的な作り方を見ていきます。
基本的なウィジェットの作り方はこちらをご参照ください。
ウィジェットの作り方 | テックファーム
まずはじめにティッカーとして表示させる文字列を編集します。
values配下のstring.xmlに表示させたい文字列を追加します。
次にlayout配下のmain.xmlを以下のように記述します。
ボタンのプロパティに以下の設定をすることでティッカーを作ることが出来ます。
■android:ellipsize
Viewの幅からはみ出す文字列が指定された場合に、どのように省略記号を出力するかを指定します。
■android:background
ティッカーらしく見せるために黒の画像を貼り付けます。
■android:marqueeRepeatLimit
ellipsizeでmarqueeと指定した際に何回文字列をスクロールさせるか指定します。
そしてAppWidgetの設定を記述するXMLを作成します。
「res」以下に「xml」フォルダを作成し、
右クリックメニューより、「新規」→「Android XML file」を選択。
また「src/android.sample.marquee」以下に、AppWidgetProviderクラスを継承した任意のクラスを作成します。
今回は特に処理はありません。
最後にAppWidgetをAndroidManifest.xmlへ登録します。
このティッカーのミソはウィジェットとして表示させるボタンのmarqueeを利用することです。
エミュレータのカーソルをウィジェットにあてることで文字列がスクロールし、まるでティッカーのように表示されます。
プログラムでButtonをアクティブにできれば、ユーザ操作を必要とせずにティッカー表示が実現できたのですが、widgetからリソースへアクセスする場合、RemoteViewsを介して行う必要があり、RemoteViewsにはsetSelected(true)などのAPIが存在しません。
この件に関しては、以下でも議論されていました。
HTC Hero Stocks Widget Scrolling Ticker functionality – Android Developers | Google グループ
もっと探せばやり方はあるかもしれません。


