Добавить задержку при добавлении представления в Android - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть простая анимация, прикрепленная к динамическому текстовому изображению, которое я создаю, но я хочу добавить задержку при их добавлении. Пожалуйста, объясните мне, как это сделать.

    LinearLayout ll = (LinearLayout)findViewById(R.id.ll);
    final HorizontalScrollView hsv = new HorizontalScrollView(TestViewActivity.this);
    LinearLayout lhsv = new LinearLayout(TestViewActivity.this);

    Animation a1 = new AlphaAnimation(0.00f, 1.00f);
    a1.setDuration(350);
    a1.setFillAfter(true);  

    for(int k =0; k < 5; k++){
        // may be some handler here but how ?
        TextView tv = new TextView(TestViewActivity.this);
        tv.setText("Text");
        tv.setTextSize(42);
        tv.setPadding(10, 0, 10, 0);
        tv.setVisibility(View.INVISIBLE);
        tv.clearAnimation();
        tv.startAnimation(a1);

        lhsv.addView(tv, k);
    }

    hsv.addView(lhsv);

    ll.addView(hsv);

Спасибо

Исходя из предположения, что я попробовал это, оно работает, но все представления объединяются, я хочу, чтобы одно представление вводилось с задержкой, затем другое представление и так далее ... это код.

   final Handler handler = new Handler();
    LinearLayout ll = (LinearLayout)findViewById(R.id.ll);
    final HorizontalScrollView hsv = new HorizontalScrollView(TestViewActivity.this);
    final LinearLayout lhsv = new LinearLayout(TestViewActivity.this);

    final Animation a1 = new AlphaAnimation(0.00f, 1.00f);
    a1.setDuration(350);
    a1.setFillAfter(true);  
    for(int k =0; k < 5; k++){
         new Handler().postDelayed(new Runnable() {
                public void run() {
                    //write your code here...
                    final TextView tv = new TextView(TestViewActivity.this);  
                    tv.setText("Text");
                    tv.setTextSize(42);
                    tv.setPadding(10, 0, 10, 0);
                    tv.setVisibility(View.INVISIBLE);
                    tv.clearAnimation();   
                    tv.startAnimation(a1);
                    lhsv.addView(tv, temp);
                    temp++;
                }
            }, 2000);


    }

    hsv.addView(lhsv);
    ll.addView(hsv);

Ответы [ 3 ]

6 голосов
/ 14 февраля 2012

используйте это

 new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //write your code here...
        }
    }, delay_time);
0 голосов
/ 14 февраля 2012

попробуйте это ...

 for(int k =0; k < 5; k++){
   //write your code here...
                        final TextView tv = new TextView(TestViewActivity.this);  
                        tv.setText("Text");
                        tv.setTextSize(42);
                        tv.setPadding(10, 0, 10, 0);
                        tv.setVisibility(View.INVISIBLE);
                        tv.clearAnimation();   
                        tv.startAnimation(a1);
                        lhsv.addView(tv, temp);
                        temp++;
             new Handler().postDelayed(new Runnable() {
                    public void run() {

                    }
                }, 2000);
}
0 голосов
/ 14 февраля 2012

Попробуйте AysncTask. Он предназначен для той же самой причины.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...