流水灯要走起来除了需要广告文本以外,还需要让文本获取到焦点才能动起来,流水灯效果获取到焦点有2种方法
第一种是样式中设置,第二种是自己设置样式,
第一种
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:text="商务部和交通运输部在会上表示,京东等企业利用自身优势确保了物资供给和送达,有效保障了群众的基本需求"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:textSize="18sp"
/>
第二种跑马灯效果,需要获取到activity,一种方法是自定义textVIEW来强制textView获取到焦点
样式文件
<com.ldw.safe.view.FocusedTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/black"
android:text="商务部和交通运输部在会上表示,京东等企业利用自身优势确保了物资供给和送达,有效保障了群众的基本需求"
android:singleLine="true"
android:ellipsize="marquee"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
android:textSize="18sp"
/>
自定义布局属性
package com.ldw.safe.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* 让textVie获取到焦点
*/
public class FocusedTextView extends TextView {
//直接newTextVew的时候执行的是这个方法
public FocusedTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
//有属性的时候机会执行此方法
public FocusedTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
//有样式的时候会执行此方法
public FocusedTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
/**
* true表示有焦点
* 跑马灯要运行,首先调用此方法是否有焦点,是true,跑马灯才会有效果,这里面强制textView返回true,
* 让跑马灯有焦点,可以运行
*/
@Override
public boolean isFocused(){
return true;
}
}