1

我试图动态地将 imageViews 添加到表格布局中,我的要求是 imageView 中的图像必须一个接一个地进行动画处理,并且所有图像都应该保留在视图本身上。

但问题是图像没有一个接一个地动画化,而是整个图像集立即淡入。但我希望图像一个接一个地淡入,而这并没有发生。

请帮帮我。

提前致谢

4

5 回答 5

2

通过使用 AsyncTask 将图像一张一张地添加到视图中。

@Override
protected Void doInBackground(Void... params) {

    runOnUiThread(new Runnable() {
        public void run() {             
            int a =0;
            for (Integer row = 0; row < rows; row++) {

                tableRow = new TableRow(getApplicationContext());
                for (Integer col = 0; col < img; col++) {

                    image = new ImageView(getApplicationContext());
                    android.view.animation.Animation anim = animate(a);
                    /*android.view.animation.Animation anim = AnimationUtils
                                .loadAnimation(getApplicationContext(), R.anim.fadein);*/
                    image.startAnimation(anim);
                    image.setPadding(20, 20, 20, 20);

                        image.setImageResource(R.drawable.images);
                    tableRow.addView(image);
                    a++;
                }
                tableLayout.addView(tableRow);
            }
            VSC.addView(tableLayout);
            HSC.addView(VSC);
            setContentView(HSC);
        }
    });

    return null;
}
于 2012-10-04T10:27:23.120 回答
1

这是我对您的建议,您可以从 android 开始ViewFlipper制作类似图像的动画淡入和淡出。在 ViewFlipper 示例上搜索将帮助您入门。

于 2012-10-03T06:25:00.230 回答
1

是的,肯定有解决方案,您可以根据您的动画要求创建多个图像帧,然后您可以将这些图像放在可绘制文件夹中。然后使用这样的动画。 <animation-list
xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/imvControl" android:oneshot="false"> <item android:drawable="@drawable/image1" android:duration="100" /> <item android:drawable="@drawable/image1" android:duration="100" /> <item android:drawable="@drawable/image1" android:duration="100" /> </animation-list>

有关更多信息,请访问此链接
祝你好运!

于 2012-10-03T06:37:40.973 回答
0

定义一个扩展动画的类,并提到您可以使用 ViewFlipper 交换图像,正如 Herry 所说

于 2012-10-03T06:41:17.120 回答
0
 t1.schedule(new TimerTask() {
                int i =4;
                @Override
                public void run() {
                    // TODO Auto-generated method stub

                    if(i<0){
                        i=4;
                    }
                    else
                    {
                    Message m=new Message();
                    m.arg1=i;
                    imgHandler.sendMessage(m);
                    i--;
                    }
                }
            }, 0,1000);
 Handler imgHandler=new Handler(){

        public void handleMessage(Message msg) {



            imgLogo.setImageDrawable(images[msg.arg1]);             

        };

我使用此代码一个接一个地依次显示图像

于 2012-10-03T06:46:09.167 回答