Android使用TextView实现跑马灯效果

一、第一种方式:

  通过TextView控件的自身属性实现(但是有缺点就是当多个TextView要实现这种效果的时候,只有第一个才有效果)

   实现方法加上下面四个属性:

    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    

    <TextView

        android:id="@+id/textView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginTop="16dp"

        android:singleLine="true"

        android:ellipsize="marquee"

        android:focusable="true"

        android:focusableInTouchMode="true"

        android:text="@string/textView" />

    

    <TextView

        android:layout_below="@+id/textView1"

        android:id="@+id/textView2"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginTop="16dp"

        android:singleLine="true"

        android:ellipsize="marquee"

        android:focusable="true"

        android:focusableInTouchMode="true"

        android:text="@string/textView" />

    

    

</LinearLayout>

 

 

 

 

二、第二种方式:

  通过java代码实现(自定义一个TextView的类)

  加上下面四个属性:

    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:orientation="vertical" >

    

    <com.muke.textview_edittext.text

        android:id="@+id/textView1"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginTop="16dp"

        android:singleLine="true"

        android:ellipsize="marquee"

        android:focusable="true"

        android:focusableInTouchMode="true"

        android:text="@string/textView" />

    

    <com.muke.textview_edittext.text

        android:layout_below="@+id/textView1"

        android:id="@+id/textView2"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_alignParentLeft="true"

        android:layout_alignParentTop="true"

        android:layout_marginTop="16dp"

        android:singleLine="true"

        android:ellipsize="marquee"

        android:focusable="true"

        android:focusableInTouchMode="true"

        android:text="@string/textView" />

    

    

</LinearLayout>
package com.muke.textview_edittext;



import android.content.Context;

import android.util.AttributeSet;

import android.widget.TextView;



public class text extends TextView {



    public text(Context context) {

        super(context);

        

    }

    

    public text(Context context, AttributeSet attrs) {

        super(context, attrs);

        

    }

    

    public text(Context context, AttributeSet attrs, int defStyle) {

        super(context, attrs, defStyle);

        

    }



    public text(Context context, AttributeSet attrs, int defStyleAttr,int defStyleRes) {

        super(context, attrs, defStyleAttr, defStyleRes);

        

    }

    

    

    //关键在于这个方法

    public boolean isFocused(){

        return true;

    }



}
package com.muke.textview_edittext;



import android.os.Bundle;

import android.app.Activity;





public class MainActivity extends Activity{

    

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

    }

}

 

你可能感兴趣的:(textview)