Android:textview automatic scrolling (marquee)
TextView implementation of text scrolling requires the following points: 1. Text length is longer than can be displayed range: Android:singleline= "true" 2. Set scroll to, or display style: android:ellipsize= "marquee" 3. TextView The hidden text is only scrolled when the focus is taken, so you need to create a new class in the package to inherit the TextView. Overriding the IsFocused method, the default behavior of this method is that if TextView gets the focus, the method returns true and loses focus returns false. The marquee effect is also evaluated using this method to determine if the focus is obtained, so the return value is always set to true. The following goes from others: the Java language:Alwaysmarqueetextview class
Public classAlwaysmarqueetextviewextendsTextView { PublicAlwaysmarqueetextview (Context context) {Super(context);} PublicAlwaysmarqueetextview (Context context, AttributeSet attrs) {Super(context, attrs);} PublicAlwaysmarqueetextview (context context, AttributeSet attrs,intDefstyle) {Super(context, attrs, Defstyle);} @Override Public BooleanisFocused () {return true;}
Adding such a alwaysmarqueetextview to the layout XML file is something you just learned.
XML language:Layout.xml
<Com.examples.AlwaysMarqueeTextViewAndroid:id= "@+id/amtv1″Android:layout_width= "Fill_parent"Android:layout_height= "Wrap_content"Android:lines= "1″android:focusable= "true"Android:focusableintouchmode= "true"android:scrollhorizontally= "true"Android:marqueerepeatlimit= "Marquee_forever"android:ellipsize= "Marquee"Android:background= "@android: Color/transparent"/>
Ellipsize Property
Sets how the control is displayed when the text is too long. The following values are set: "Start"-the ellipsis is displayed at the beginning; "End"-the ellipsis is displayed at the end; "Middle"-the ellipsis is displayed in the middle; "Marquee"--displayed in the form of a marquee (animation moves Sideways)
Eidttext and TextView content too long words word wrap, using android:ellipsize and android:singleine can be resolved, so that only one line.
EditText does not support marquee
Use the following:
in XML
Android:ellipsize = "End" ellipsis at the end android:ellipsize = "Start" ellipsis at the beginning android:ellipsize = "Middle" ellipsis in the middle of Android: Ellipsize = "marquee" marquee android:singleline = "true"
Of course, you can also use code statements
Tv.setellipsize (TextUtils.TruncateAt.valueOf ("END")); Tv.setellipsize (TextUtils.TruncateAt.valueOf ("START")); Tv.setellipsize (TextUtils.TruncateAt.valueOf ("Middle")) Tv.setellipsize (TextUtils.TruncateAt.valueOf ("MARQUEE") )); Tv.setsingleline (true);
Marqueerepeatlimit Property
Sets the number of times to repeat scrolling when ellipsize specifies marquee, which is expressed indefinitely when set to Marquee_forever.
Focusable Property
What you are guessing is whether you can get the focus, and the same focusableintouchmode should be the focus when sliding.
Problem with view combination:
XML language:Combination View
<LinearLayoutxmlns:android= "Http://schemas.android.com/apk/res/android"android:orientation= "vertical"android:gravity= "Center_vertical"Android:background= "@drawable/f_background"Android:layout_width= "Fill_parent"android:focusable= "true"Android:layout_height= "50px"><TextViewAndroid:id= "@+id/info_text"android:focusable= "true"Android:layout_width= "Fill_parent"Android:layout_height= "Wrap_content"Android:text= "TestMarquee. "Android:textcolor= "@color/black"Android:singleline= "true"android:ellipsize= "Marquee"Android:marqueerepeatlimit= "3″android:textsize= "18SP"/><TextViewAndroid:id= "@+id/date_text"Android:layout_width= "Fill_parent"Android:layout_height= "Wrap_content"android:layout_gravity= "Bottom"Android:textcolor= "@color/gray"Android:text= "2010/05/28″android:textsize= "12SP"/></LinearLayout>
The above example of 2 TextView combination as a view, because the set of LinearLayout for focusable and TextView can not get focus, so that the textview of the marquee effect is not shown, Even if you set TextView's
android:focusable=
"true"
is useless. This is the time to use the Addstatesfromchildren property, set this property in LinearLayout,
然后设置TextView的focusable=
"true"
就可以了.关于 addStatesFromChildren的说明:
Sets whether
this
ViewGroup‘s drawable states
also include its children‘s drawable states.
Android:textview Auto-scroll (marquee) (GO)