テキストが 30 dp で textview が 15 dp のように、テキストが長すぎる場合に、左隅から右に移動するテキストを表示し、最初に戻るというオプションがあるかどうかを尋ねたいと思います。アニメーションのようなもの。ユーザーにすべてのテキストを表示したい。自動スクロールのようなもの。
編集:xmlではなくコードでそれを行うにはどうすればよいですか?
テキストが 30 dp で textview が 15 dp のように、テキストが長すぎる場合に、左隅から右に移動するテキストを表示し、最初に戻るというオプションがあるかどうかを尋ねたいと思います。アニメーションのようなもの。ユーザーにすべてのテキストを表示したい。自動スクロールのようなもの。
編集:xmlではなくコードでそれを行うにはどうすればよいですか?
例 -
XML で:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:textColor="#ff4500"
android:text="this is a very long piece of text that will move" />
</RelativeLayout>
Javaで:
tv = (TextView) this.findViewById(R.id.tv);
tv.setSelected(true); // Set focus to the textview
を使用する必要がありますandroid:ellipsize="marquee"
。
編集:使用できますtextView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
<TextView
android:id="@+id/YOURID"
android:layout_width="15dp"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:marqueeRepeatLimit="marquee_forever"
android:scrollHorizontally="true"
android:singleLine="true"
/>
これは、フォーカスされるまでスクロールするのに役立ちます
はい、それはマーキーと呼ばれます。以下を に設定しますTextView
。
android:singleLine="true"
android:ellipsize="marquee"
strong text属性を追加する以外に、テキストを移動するには:
android:ellipsize="marquee"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:clickable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
ビューがフォーカスされている必要があるため、これは次の 2 つの方法で行うことができます。
プログラムで:
tv.setSelected (true);
requestFocusタグを追加して、XML ですべてを実行します。
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:clickable="true"
android:focusableInTouchMode="true"
android:scrollHorizontally="true">
<requestFocus />
</TextView>