zoukankan      html  css  js  c++  java
  • TextView跑马灯效果

    转载:http://www.2cto.com/kf/201409/330658.html

    一、只想让TextView显示一行,但是文字超过TextView的长度怎么办?
    在开头显示省略号

    android:singleLine="true" 
    android:ellipsize="start"

    在结尾显示省略号

    android:singleLine="true" 
    android:ellipsize="end"

    在中间显示省略号

    android:singleLine="true" 
    android:ellipsize="middle"

    横向自动滚动(跑马灯效果)

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

    以上4个效果都要加上 android:singleLine="true",因为TextView默认是会自动换行的

    android:ellipsize是设置文字过长时,该怎么显示

    android:marqueeRepeatLimit="marquee_forever"是设置永远重复,当然你也可以设置具体的数字

    android:focusable="true"和android:focusableInTouchMode="true"一定要加上,不然滚动效果出不来

    二、怎么让TextView可以垂直滚动?
    Java代码中加入下面一句话就可以实现垂直滚动:textView.setMovementMethod(ScrollingMovementMethod.getInstance());

    三、怎么使TextView内容改变,跑马灯效果依然可以使用

    重写TextView设置TextView一直处于选中状态:AlwaysMarqueeTextView.java

    /*
     * 重写TextView保证跑马灯效果一直显示
     */
    public class AlwaysMarqueeTextView extends TextView {
    
        public AlwaysMarqueeTextView(Context context) {
            super(context);
        }
        
        public AlwaysMarqueeTextView(Context context, AttributeSet attrs) {
            super(context, attrs);
        }
        
        public AlwaysMarqueeTextView(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
        
        @Override
        public boolean isFocused() {
            return true;//一定要设置为true
        }
    }
  • 相关阅读:
    贪婪与非贪婪模式
    Arduino语言介绍
    POJ 3249 记忆化搜索或拓扑排序
    POJ 3177 缩点 + 边双连通图
    POJ 1637 网络流构图
    hdu 1285 拓扑排序+优先队列
    POJ 3160 缩点+拓扑排序+简单dp
    POJ 3592 缩点+拓扑排序+最长路
    针对11级队员的暑假训练计划(初稿)
    POJ 2762 缩点+判断是否是最长链
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4815449.html
Copyright © 2011-2022 走看看