2012-02-14 89 views
0

我有一个简单的动画附加到我创建的动态文本视图,但我想要的是添加延迟时添加它们。请指导我如何做到这一点。添加延迟期间添加视图在Android

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); 
+0

温度是静态的INT这里.. – Programmer 2012-02-14 07:28:59

回答

0

尝试AysncTask。这是出于同样的原因。

6

使用本

new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      //write your code here... 
     } 
    }, delay_time); 
+0

谢谢,但问题是我如何能在一个内部类创建的TextView,并添加到鉴于我必须让ka决赛。 – Programmer 2012-02-14 07:12:14

+0

在上面(Runnable块)之外创建Textview并在Runnable bloock中使用该ID。在onCreate之外声明您的Textview意味着创建为全局变量而不是局部变量。 – 2012-02-14 07:14:50

+0

好的,谢谢bro ...但是lhsv.addView(tv,k)怎么样;如果我把它放在循环中,它不会让我改变k,因为它是最终的。 – Programmer 2012-02-14 07:17:19

0

试试这个...

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

对不起,突然视图添加了同样的问题。 – Programmer 2012-02-14 07:54:50