TextView的字幕字幕、TextView

2023-09-05 09:38:38 作者:孤家寡人

我想提出一个TextView在主屏幕,而我需要的字幕效果

 公共类MainWidget扩展AppWidgetProvider {
诠释一个;
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
组件名thisWidget;

的String [] S = {woddfdfdfdfdfdffffffffffffffffffffffffffffffff,DD,DDD,FFFF};
公共无效的OnUpdate(上下文的背景下,AppWidgetManager appWidgetManager,
      INT [] appWidgetIds){
      定时器定时=新的Timer();
      timer.scheduleAtFixedRate(新WlanTimer(上下文,appWidgetManager),100,50000);
}

私有类WlanTimer扩展的TimerTask {
        RemoteViews remoteViews;
        AppWidgetManager appWidgetManager;
        组件名thisWidget;

公共WlanTimer(上下文的背景下,AppWidgetManager appWidgetManager){

        this.appWidgetManager = appWidgetManager;
        remoteViews =新RemoteViews(context.getPackageName(),R.layout.marketwidget_main);
        thisWidget =新的组件名(背景下,MainWidget.class);
}

@覆盖
公共无效的run(){
一个=(int)的(的Math.random()* 3);
        remoteViews.setTextViewText(R.id.TextView_marketwidget_main_marketmessage,S [一个]);
    appWidgetManager.updateAppWidget(thisWidget,remoteViews);
    }
}
}
 

如果我用S [0],而不是S [A],它不运行,只有woddfdf出现了。

我的TextView XML是:

 < TextView的机器人:ID =@ + ID / TextView_marketwidget_main_marketmessage
    机器人:MAXLINES =1机器人:可聚焦=真
    机器人:ellipsize =金字招牌
    机器人:inputType =文本
    机器人:focusableInTouchMode =真正的机器人:marqueeRepeatLimit =marquee_forever机器人:文字颜色=#FFFFFF机器人:背景=@机器人:彩色/透明的android:layout_width =80dip机器人:layout_height =20dip> < / TextView的>
 

解决方案

我从你的问题是,你要显示在TextView中滚动字幕的效果了? 如果我是正确的,请执行下列操作。

设置安卓ellipsize =金字招牌的TextView 在布局文件(XML)元素。然后,在你活动的的onCreate()方法,添加行 textView.setSelected(真);

开源项目集锦 备用

请注意:更换名称的TextView与你的TextView的名称

恢复任何查询。

I want to put a textView in homescreen, and I need the marquee effect

public class MainWidget extends AppWidgetProvider {
int a;
RemoteViews remoteViews;
AppWidgetManager appWidgetManager;
ComponentName thisWidget;

String[] s={"woddfdfdfdfdfdffffffffffffffffffffffffffffffff","dd","ddd","ffff"};
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
      int[] appWidgetIds) {
      Timer timer = new Timer();
      timer.scheduleAtFixedRate(new WlanTimer(context, appWidgetManager), 100, 50000);
}

private class WlanTimer extends TimerTask {
        RemoteViews remoteViews;
        AppWidgetManager appWidgetManager;
        ComponentName thisWidget;

public WlanTimer(Context context, AppWidgetManager appWidgetManager) {

        this.appWidgetManager = appWidgetManager;
        remoteViews = new RemoteViews(context.getPackageName(), R.layout.marketwidget_main);
        thisWidget = new ComponentName(context, MainWidget.class);
}

@Override
public void run() {
a=(int) (Math.random()*3);                            
        remoteViews.setTextViewText(R.id.TextView_marketwidget_main_marketmessage,s[a]);
    appWidgetManager.updateAppWidget(thisWidget, remoteViews);
    }
}
}

If i use s[0] instead s[a], it does not run, only "woddfdf" shows up.

My textView xml is:

 <TextView android:id="@+id/TextView_marketwidget_main_marketmessage"
    android:maxLines="1" android:focusable="true"
    android:ellipsize="marquee"
    android:inputType="text"
    android:focusableInTouchMode="true" android:marqueeRepeatLimit="marquee_forever" android:textColor="#ffffff" android:background="@android:color/transparent" android:layout_width="80dip" android:layout_height="20dip"></TextView>

解决方案

What I got from your question is, you want to show a scrolling marquee effect in TextView? If I am right, do the following.

Set android:ellipsize="marquee" in TextView element in your layout file (XML). Then, in your Activity's onCreate() method, add the line textView.setSelected(true);.

Note: Replace the name textView with the name of your TextView.

Revert back for any query.

 
精彩推荐