自定义可以滚动TextView

来源:互联网 发布:魔卡少女樱之我是知世 编辑:程序博客网 时间:2024/05/01 00:18

布局:

<span style="font-size:18px;"><com.mydemo.view.FocusableTextView                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:layout_marginLeft="5dp"                android:layout_marginTop="10dp"                android:text="www.baidu.com"                android:textColor="#ff0000"                android:textSize="20sp" /></span>
代码逻辑:

<span style="font-size:18px;">public class FocusableTextView extends TextView {    public FocusableTextView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);        System.out.println("3个参数的构造方法");        init();    }    public FocusableTextView(Context context, AttributeSet attrs) {        super(context, attrs);        init();        System.out.println("2个参数的构造方法");    }    /**     * 初始化textView     *///    <!--//    android:ellipsize="marquee" 跑马灯//   android:focusable="true" //物理键获取到焦点//   android:focusableInTouchMode="true" //手指触摸获取到焦点//   android:singleLine="true" 单行展示//   android:marqueeRepeatLimit="marquee_forever" 跑马灯循环//-->    private void init() {        setEllipsize(TruncateAt.MARQUEE);        setFocusable(true);        setFocusableInTouchMode(true);        setSingleLine();        setMarqueeRepeatLimit(-1);    }    public FocusableTextView(Context context) {        super(context);        init();        System.out.println("1个参数的构造方法");    }    // <!--    // android:ellipsize="marquee" 跑马灯    // android:focusable="true" //物理键获取到焦点    // android:focusableInTouchMode="true" //手指触摸获取到焦点    // android:singleLine="true" 单行展示    // android:marqueeRepeatLimit="marquee_forever" 跑马灯循环 -->    /**     * 让两个控件同时获取到焦点     */    @Override    @ExportedProperty(category = "focus")    public boolean isFocused() {        // TODO Auto-generated method stub        return true;    }    /**     * 不管谁获取到焦点。那么都开启跑马灯     */    @Override    protected void onFocusChanged(boolean focused, int direction,            Rect previouslyFocusedRect) {        if(focused){            super.onFocusChanged(focused, direction, previouslyFocusedRect);        }            }    /**     * 窗体获取到焦点     */    @Override    public void onWindowFocusChanged(boolean hasWindowFocus) {        if(hasWindowFocus){            super.onWindowFocusChanged(hasWindowFocus);        }            }}</span>


0 0
原创粉丝点击