ティッカー風ウィジェットを作ってみる【AppWidget】

By haruka
このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

こんにちは。harukaです。

前回、アドレス帳作成の過程を紹介します!と意気込んだのですが、
アドレス帳よりも遊び心あるティッカーを載せたい!と思い、予定を変更して
今回はティッカーもどきの作り方を紹介します。

具体的にはこんな感じになります。↓↓

Marquee
Marquee2

わかりにくいかもしれませんが、文字が動いています。
ではこれから具体的な作り方を見ていきます。

基本的なウィジェットの作り方はこちらをご参照ください。
ウィジェットの作り方 | テックファーム

まずはじめにティッカーとして表示させる文字列を編集します。
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 グループ

もっと探せばやり方はあるかもしれません。

関連する投稿