这一篇 是上一篇的升级版 ,可以实现多行跑马灯效果,
主要解决了在焦点抢占导致的事件冲突问题
MainActivity

package com.android.marquee;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void alertDialog(View view){        AlertDialog.Builder alertDialog=new AlertDialog.Builder(this);        alertDialog.setTitle("弹框一");        alertDialog.setMessage("弹框二");        alertDialog.show();    }}

自定义控件MarqueeView,解决焦点抢占导致的事件冲突问题

package com.android.marquee;import android.content.Context;import android.graphics.Rect;import android.text.TextUtils;import android.util.AttributeSet;/** * date:2018/11/12 * author:李壮(HUAWEI) * function:自定义控件 */public class MarqueeView extends android.support.v7.widget.AppCompatTextView {    public MarqueeView(Context context) {        this(context,null);    }    public MarqueeView(Context context, AttributeSet attrs) {        this(context, attrs,0);    }    public MarqueeView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);        //设置单行        setSingleLine();        //设置Ellipsize        setEllipsize(TextUtils.TruncateAt.MARQUEE);        //获取焦点        setFocusable(true);        //走马灯的重复次数,-1代表无限重复        setMarqueeRepeatLimit(-1);        //强制获得焦点        setFocusableInTouchMode(true);    }    /*     *这个属性这个View得到焦点,在这里我们设置为true,这个View就永远是有焦点的     */    @Override    public boolean isFocused() {        return true;    }    /*     * 用于EditText抢注焦点的问题     * */    @Override    protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {        if (focused) {            super.onFocusChanged(focused, direction, previouslyFocusedRect);        }    }    /*     * Window与Window间焦点发生改变时的回调     * */    @Override    public void onWindowFocusChanged(boolean hasWindowFocus) {        if (hasWindowFocus)            super.onWindowFocusChanged(hasWindowFocus);    }}

布局文件

<?xml version="1.0" encoding="utf-8"?>    

这下我们就可以实现多行跑马灯效果的实现

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. 修改SeekBar样式
  3. Android(安卓)4.0 HttpUrlConnection的getInputStream()方法总是
  4. 2011.08.15(2)——— android audioManager解决MediaPlayer AudioT
  5. android中The connection to adb is down .. You must restart a
  6. android 7.1 默认壁纸拉伸问题
  7. ANDROID 编译源码6.0 问题记录
  8. android开发遇到的问题
  9. Android8.0 页面崩溃问题

随机推荐

  1. [android][windows][使用HAXM加速模拟器]
  2. Android(安卓)Wifi 信息保存与忘记
  3. Android(安卓)savedInstanceState的使用
  4. Android(安卓)opengl es 2.0怎么学习
  5. Android(安卓)5.0 Lollipop新的摄像头API
  6. php学习笔记(数据类型的转换、数据类型的
  7. 移植之乱谈
  8. layout_width和width,layout_height和hei
  9. android中viewpager的学习
  10. android小游戏:功夫蛇 开发经验总结(附apk