材料设计动画android

时间:2015-09-23 05:21:01

标签: android material-design

您好我尝试将布局中的视图列表设置为scale_up动画,但是在最后一个视图启动动画后,每个视图都必须等待100毫秒。 我试着为他们设置延迟:

for (View view: views) {

            AnimatorSet animator = (AnimatorSet)AnimatorInflater.loadAnimator(context, R.animator.edit_text_open);
            animator.setStartDelay(counter++ * 100);
            Log.e("counter number:", "" + counter);
            animator.setTarget(view);
            animator.start();
        }

但是它并不起作用所有一起查看动画。 还有一件事是关于材料设计动画的任何好的推理我试图在每个有材料设计的地方制作动画像我只是不知道他们是怎么做的。

2 个答案:

答案 0 :(得分:1)

初始化AnimatorSet

AnimatorSet animator = (AnimatorSet)AnimatorInflater.loadAnimator(context, R.animator.edit_text_open);

使用Timer将完成任务

Timer t = new Timer();
int count = 0;
t.scheduleAtFixedRate(new TimerTask() {
    // Do stuff
    animator.setTarget(views.get(count));
    animator.start();
    count++;
    if (count >= views.size()) //assuming views as List<View>
        t.cancel();
}, 0, 100);

希望,这有帮助。 快乐编码!!!

答案 1 :(得分:0)

正如@Stack Overflowerrr在最后一个答案中所说,代码是:

t.scheduleAtFixedRate(new TimerTask() {
            // Do stuff
            @Override
            public void run() {
                runOnUiThread(new Runnable() {

                    @Override
                    public void run() {
                        AnimatorSet animator = (AnimatorSet)AnimatorInflater.loadAnimator(MainActivity.this, R.animator.edit_text_open);
                        animator.setTarget(views.get(count));
                        animator.start();
                        Log.e("counter", "" + count);
                    }
                });

                count++;

                if (count + 1 >= views.size()) //assuming views as List<View>
                    t.cancel();
            }
        }, 0, 500);

我宣布这两个是全球性的:

int count = 0;
Timer t = new Timer();

再次发现Stack Overflowerrr。