首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法让ellipsize=的“字幕”总是滚动?

有没有办法让ellipsize=的“字幕”总是滚动?
EN

Stack Overflow用户
提问于 2009-12-02 01:40:44
回答 5查看 65.6K关注 0票数 96

我想在TextView上使用字幕效果,但只有当TextView获得焦点时,才会滚动文本。这是一个问题,因为在我的情况下,它不能。

我正在使用:

代码语言:javascript
复制
  android:ellipsize="marquee"
  android:marqueeRepeatLimit="marquee_forever"

有没有办法让TextView始终滚动文本?我已经在Android Market应用程序中看到了这一点,应用程序名称将在标题栏中滚动,即使它没有获得焦点,但我在API文档中找不到这一点。

EN

回答 5

Stack Overflow用户

发布于 2010-08-18 17:58:39

只需将这些参数放入您的TextView中。它是有效的:)

代码语言:javascript
复制
    android:singleLine="true" 
    android:ellipsize="marquee"
    android:marqueeRepeatLimit ="marquee_forever"
    android:scrollHorizontally="true"
    android:focusable="true"
    android:focusableInTouchMode="true" 
票数 76
EN

Stack Overflow用户

发布于 2010-08-12 15:13:19

我不知道你是否还需要答案,但我找到了一个简单的方法来做到这一点。

按如下方式设置动画:

代码语言:javascript
复制
Animation mAnimation = new TranslateAnimation(START_POS_X, END_POS_X, 
                START_POS_Y, END_POS_Y);
mAnimation.setDuration(TICKER_DURATION); 
mAnimation.setRepeatMode(Animation.RESTART);
mAnimation.setRepeatCount(Animation.INFINITE);

START_POS_XEND_POS_XSTART_POS_YEND_POS_Yfloat值,而TICKER_DURATION是我用其他常量声明的int

然后,您现在可以将此动画应用于TextView:

代码语言:javascript
复制
TextView tickerText = (TextView) findViewById(R.id.ticker);
tickerText.setAnimation(mAnimation);

就是这样。:)

我的动画开始于屏幕外的右侧(300f),结束于屏幕外的左侧(-300F),持续时间为15s (15000)。

票数 12
EN

Stack Overflow用户

发布于 2012-01-19 18:09:22

我为一个带有字幕文本项的ListView编写了以下代码。它基于上面描述的setSelected解决方案。基本上,我是在扩展ArrayAdapter类并覆盖getView方法以在返回TextView之前选择它:

代码语言:javascript
复制
    // Create an ArrayAdapter which selects its TextViews before returning      
    // them. This would enable marqueeing while still making the list item
    // clickable.
    class SelectingAdapter extends ArrayAdapter<LibraryItem>
    {
        public
        SelectingAdapter(
            Context context, 
            int resource, 
            int textViewResourceId, 
            LibraryItem[] objects
        )
        {
            super(context, resource, textViewResourceId, objects);
        }

        @Override
        public
        View getView(int position, View convertView, ViewGroup parent)
        {
            View view = super.getView(position, convertView, parent);
            TextView textview = (TextView) view.findViewById(
                R.id.textview_playlist_item_title
            );
            textview.setSelected(true);
            textview.setEnabled(true);
            textview.setFocusable(false);
            textview.setTextColor(0xffffffff);
            return view;

        }
    }
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1827751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档