Android页面中动态显示系统时间,并且显示的位置来回滑动

问题遇到的现象和发生背景 android studio的开发问题,在一个页面上显示系统时间,并且这个时间是动态显示的,随着系统时间的改变而改变。然后这个时间显示的位置,类似跑马灯效果一样在页面中滑动。如下图所示,系统时间h动态显示,并且显示的位置由A滑动到B,再由B滑动到A。

img

我的解答思路和尝试过的方法 主要两个思路,第一个使用Textclock插件获取时间,能达到动态显示时间的要求,但是无法满足滑动显示;第二个多个文本框循环显示,每个文本框各在一个不同的位置


   <TextClock

        android:id="@+id/textClock"
        android:layout_width="268dp"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:format24Hour="yyyy/MM/dd\n    aa \n kk:mm:ss"
        android:textColor="#f0f"
        android:textSize="50sp"
        tools:layout_editor_absoluteX="88dp"
        tools:layout_editor_absoluteY="436dp" />
我想要达到的结果 只要能实现动态显示和滑动的功能就可以,不需要关心效率问题

引入开源包

implementation 'com.github.li-xiaojun:MarqueeView:1.0'
<com.lxj.marqueeview.MarqueeView
            android:id="@+id/textClock"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            app:marqueeTextSize="50sp"
            app:marqueeTextColor="#f0f" />
 private MarqueeView textClock;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
     textClock = findViewById(R.id.textClock);
     textClock.setInterval(1000);
    handler.sendEmptyMessage(99);
}
 @Override
 protected void onDestroy() {
     handler.removeCallbacksAndMessages(callback);
     super.onDestroy();
 }
private final Handler.Callback callback = new Handler.Callback() {
        @Override
        public boolean handleMessage(@NonNull Message msg) {
            if (msg.what == 99) {
                SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd aa kk:mm:ss");
                String date = simpleDateFormat.format(new Date());
                String[] dates = date.split(" ");
                ArrayList<String> data = new ArrayList<>(Arrays.asList(dates));
                textClock.setMarqueeData(data);
                handler.sendEmptyMessageDelayed(99, 1000);
            }
            return false;
        }
    };
private final Handler handler = new Handler(Looper.getMainLooper(), callback);