zoukankan      html  css  js  c++  java
  • Widget 跑马灯

    在Activity中让TextView具有跑马灯效果很简单。只需要加android:ellipsize="marquee",并且在java代码中requestFocus就好了。但是,要是在Widget中的TextView怎么办呢?(答案是:在Layout中加<requestFocus />)

    Widget 中TextView的跑马灯效果

    应为Widget程序中没有提供类似requestFocus这样的函数,因此只能在layout中加<requestFocus />,让Framework主动设置TextView为Focus.

     <TextView
    android:id="@+id/textView"
    android:layout_width
    ="wrap_content"
    android:layout_height
    ="wrap_content"
    android:ellipsize
    ="marquee"
    android:focusable
    ="true"
    android:focusableInTouchMode
    ="true"
    android:marqueeRepeatLimit
    ="marquee_forever"
    android:scrollHorizontally
    ="true"
    android:singleLine
    ="true"
    android:textColor
    ="#ffffff"
    android:textSize
    ="14sp"
    android:typeface
    ="monospace" >

    <requestFocus />
    </TextView>

    另外,看了一篇文章可以让TextView在没有焦点的情况下也具有跑马灯效果。

    android不获取焦点也可以实现跑马灯效果

    参考自:http://liuyun025.iteye.com/blog/1395351,自定义TextView:

    public class MarqueeTextView extends TextView{
    private boolean mMarquee = false;
    public MarqueeTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    }
    public void setMarquee(boolean marquee) {
    mMarquee = marquee;
    }
    @Override
    public void onFocusChanged(boolean focused, int direction,Rect previouslyFocusedRect) {
    if (focused){
    super.onFocusChanged(focused, direction, previouslyFocusedRect);
    }
    }
    @Override
    public void onWindowFocusChanged(boolean focused) {
    if (focused){
    super.onWindowFocusChanged(focused);
    }
    }
    @Override
    public boolean isFocused() {
    return mMarquee;
    }
    }




  • 相关阅读:
    jdk8:垃圾收集器
    Young GC和Full GC分别在什么情况下会发生?
    GC之Minor/Young/Major GC的区别
    Java的JJWT实现JWT
    什么是 JWT -- JSON WEB TOKEN
    Spring的两种动态代理:Jdk和Cglib 的区别和实现
    java对象结构 对象头 Markword
    偏向锁跟可重入性有什么区别
    C# 加密算法[汇总]
    Java语言:JAVA8 十大新特性详解(zz)
  • 原文地址:https://www.cnblogs.com/zgx2012/p/2433021.html
Copyright © 2011-2022 走看看