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;
    }
    }




  • 相关阅读:
    phpQuery—基于jQuery的PHP实现
    php 知乎爬虫
    windows下安装php5.5的redis扩展
    Redis 安装
    使用AngularJS创建应用的5个框架
    Redis能干啥?细看11种Web应用场景
    前端开发必须知道的JS之闭包及应用
    javascript深入理解js闭包
    day16<集合框架+>
    day15<集合框架>
  • 原文地址:https://www.cnblogs.com/zgx2012/p/2433021.html
Copyright © 2011-2022 走看看