[开发笔记-2013/01/31] Android频繁更新TextView内容的困惑

这篇开发笔记记录了作者在制作类似播放器应用时遇到的界面问题,特别是TextView频繁更新导致的‘跑马灯’效果TextView异常移动。经过排查,问题出在TimeView的尺寸变化上,当其宽度瞬间变为0时,影响了相邻的MarqueeTextView,造成视觉上的异常。解决方案是优化布局,避免TextView尺寸瞬间变化带来的影响。
摘要由CSDN通过智能技术生成

今天在做类似播放器的东西,期间遇到了界面更新小问题,纠结了1个多钟才最终想通了,所以在这里写点东西纪录一下,希望以后遇到类似问题,

我一分钟就可以解决。


我的界面中,里面包含了一个具有“跑马灯“效果的TextView(简称MarqueeTextView)。MarqueeTextView的前面是个也是一个显示音乐播放

时间的TextView(简称TimeView)。MarqueeTextView在音乐播放时匀速的移动,而TimeView每隔1秒都会被调用一次setText()来更新音乐

播放的时间进度。


程序在实际运行过程中,MarqueeTextView的移动时出现了"突然移动一大截又马上恢复正常”的现象。于是乎,我的纠结开始了。


纠结1:是不是UI线程做了太多耗时操作。

查UI线程耗时操作,我是通过“代码翻阅”和“输出代码执行时间”来完成的(不知道CSDN的大神们是否更牛B的想法);最终发现怀疑代码都

在合理范围内,差一点我就想写一个SurfaceView来试试了。


纠结2:是不是Layout文件没写好。

        这正是问题所在了,TimeView是WRAP_CONTENT的,而MarqueeTextView是FILL_PARENT的。android.view.TextView在被调用setText这个函数的时候,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值