TextView,ListViewでマーキー(marquee)を使う方法

なんだかフォーカス(focus)が当たらないとマーキー(marquee)が動かないと聞いて、ちょっと調べたらすぐ出てきたのでメモしておきます。

まずTextViewでマーキー(marquee)

<TextView

android:layout_width="150px"

android:layout_height="wrap_content"

android:text="hogehogehogehogehogehogehogehoge"

android:focusable="true"

android:focusableInTouchMode="true"

android:ellipsize="marquee"

android:singleLine="true"

android:marqueeRepeatLimit="marquee_forever"

/>

これで普通にActivityを実行すれば何事もなくマーキーが動きます。

注意点としてはlayout_widthのプロパティ。文字内容がlayout_widthよりも長い状態でのみマーキーは動くみたいです。

ellipsizeというプロパティはどれもそうかも(endしか使ったことないですが)

続いてListViewでマーキー(marquee)

<TextView

android:id="@+id/name"

android:layout_width="100px"

android:layout_height="wrap_content"

android:paddingLeft="20px"

android:textColor="@color/black"

android:singleLine="true"

android:ellipsize="marquee"

/>

※上記嘘ついてました。基本TextViewのほうでいいと思います。あとで書きなおします

このTextViewはinflateする時に使ったlayout内に配置します

これも注意点はTextViewと一緒ですが、ListViewのマーキーはフォーカスが当たらないと動かないかも。

参考になったページ

EditTextのFocusableについて

ListViewをカスタマイズする

UIコンポーネント/TextView

Android Dev TextView