textview跑马灯效果,butterknife的坑,双击的实现

456 阅读1分钟

textview跑马灯效果有两种方法:

android:ellipsize="marquee" //跑马灯效果
android:marqueeRepeatLimit="marquee_forever"//无限循环
android:singleLine="true"//单行显示
当焦点离开该TextView时,取消该TextView的滚动效果:
textView.setEllipsize(TruncateAt.END);

android:focusable="true"//是否获取焦点(重点要获取焦点)
android:focusableInTouchMode="true"//通过Touch获取焦点

以上布局属性设置完毕,重点还有一个: public class AutoScrollTextView extends TextView { public AutoScrollTextView(Context context) { super(context); }

public AutoScrollTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public AutoScrollTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

@Override
public boolean isFocused() {//必须重写,且返回值是true
    return true;
}

}

第二种方法:不用设置这么多乱七八糟的,只用android:ellipsize="marquee",在设置textview.setSelected(true);就能获取焦点了。

butterknife的坑:

安装了插件后 还需要在build.gradle(app) 写上

implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'

在build.gradle(project)里配置一行代码。 然后不行的话 还得再build.gradle(app)里的buildTypes的平行目录配置

compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

才可以运行。

实现双击 可以使用handler.postDelayed. Default_time为400毫秒。代码中既有单击,又有双击。