一、数字跳动的两种实现方式
1.仿手机支付宝余额宝跳动方式
仿余额宝数字跳动是通过ValueAnimator实现的
ValueAnimator提供可以随时间变化的数值
private void run(int endNumber){
final int length = (endNumber + "").length();
ValueAnimator valueAnimator = ValueAnimator.ofInt(0, endNumber);
valueAnimator.setDuration(1200);
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
textView.setText(valueAnimator.getAnimatedValue().toString());
}
});
valueAnimator.start();
}
2.简仿密码箱开锁跳动方式
第二种目前还没有想到比较好的实现方式,个人觉得代码还可以优化
public void runWithDelay() {
for (int i = 0; i < length; i++) {
showNum[i] = 0;
lastNum[i] = Integer.parseInt(lastChar[i] + "");
}
//位数变化
new Thread() {
@Override
public void run() {
try {
int i = 0;
while (i < length) {
if(i != 0) {
Thread.sleep(gap);
}
<span style="white-space:pre"> </span>//每一位数字的变化
new Thread(String.valueOf(i)) {
@Override
public void run() {
try {
int i = Integer.parseInt(this.getName());
showNum[i] = (lastNum[i] + 10 - roll) % 10;
while (showNum[i] != lastNum[i]) {
//for (int j = 0; j < LENGTH; j++){
showNum[i] = (showNum[i] + 1) % 10;
//System.out.println("iii" + i + ' ' + showNum[i]);
String showStr = "";
for (int k = 0; k < length; k++) {
showStr += String.valueOf(showNum[k]);// + showStr;
//System.out.println("str " + showStr);
}
Message msg = new Message();
msg.what = UPDATE;
msg.obj = showStr;
handler.sendMessage(msg);
Thread.sleep(duration / (length - 1) / (roll - 1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
i++;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}.start();
<span style="white-space:pre"> </span>//改变显示值
handler = new Handler() {
@Override
public void handleMessage(Message message) {
if (message.what == UPDATE) {
textView.setText(String.valueOf(message.obj));
}
}
};
}
二、画UI时遇到的问题
EditText中添加小图标用android:drawableLeft
图片轮播使用ViewPager实现
点击改变背景使用selector
Material和AppCombat两个Theme的button有阴影动画,没找着去除的地方,
Holo的Actionbar无法调节背景色(或者是我没找着)
AppCombat和Material的Up按钮相同,和Holo的不同
资源文件要放到正确分辨率的文件夹,否则会出现奇怪的显示效果
关于颜色设置见下图
三、阅读代码时的发现
Volley(待续)
ViewPager(待续)