可视化:数字从$ 0开始增加到125万美元,并且使用每个增量之间的时间间隔(大概50-100毫秒?)在UI上显示增量过程。我尝试设置它,但遗憾的是,下面的代码失败了。
double maxValue = 10;
double currentValue = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
//more code
value_text = (TextView) rootView.findViewById(R.id.value_text);
for (int i = 0; i < maxValue; i++) {
if (currentValue != maxValue) {
try {
currentValue++;
value_text.setText(String.valueOf(currentValue));
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
棘手的部分: textview将从1美元增加到125万美元,这意味着我们必须在达到第一个百万之后更改为小数。并且快速地在UI上显示每一步。
你们有解决方案来实现这种增量效应吗?
修改
我甚至对现有的图书馆(如果有的话)感到满意,以实现这种递增效果
答案 0 :(得分:1)
这样你就永远不会看到更新了,因为你在Main Thread(或android世界中的Looper)上做的每一个操作都是如此。你应该尝试这样的事情:
private final static long MAX_VALUE = 1000000L;
private final static int TIME = 100L;
private final Handler handler = new Handler();
private long value = 1;
private void scheduleIncrementation() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (value < MAX_VALUE) {
textView.setText(String.valueOf(value++));
}
handler.postDelayed(this, TIME);
}
}, TIME);
}
在onCreate方法中只需调用:
scheduleIncrementation();