【问题标题】:Animating images one after the other一个接一个地动画图像
【发布时间】:2012-10-03 06:17:08
【问题描述】:

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

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

请帮帮我。

提前致谢

【问题讨论】:

  • 我想你想一个接一个地显示 3 个不同的图像,对吧??
  • 不是 3 张图片... 图片的数量是动态的。在第一个屏幕中输入要显示和动画的图像数量。它被传递到第二个屏幕上,所有图像都同时出现淡入动画。但我想让动画中的图像淡入淡出。那是我的要求。感谢错误处理程序。
  • 第一个屏幕是你从某个地方调用图像......我的意思是从drawables?
  • 你可以将第一个屏幕中的所有图像放入一个数组中,并使用 put extra 来使用它,然后在下一个活动中获取它,然后相应地循环它
  • 我正在从可绘制对象中调用图像......并且在第一个屏幕中传递的数字应该会出现那么多时间。问题也是如此

标签: android animation viewflipper


【解决方案1】:

通过使用 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;
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 谢谢Herry .. 但它是一个图像一个图像的动画呐!!
    • 是的,在ViewFlipper 中,您将添加它的所有子项都将使用您申请的淡入淡出动画翻转。
    • 我正在尝试为动态添加的 imageViews 实现它。一旦我得到所需的解决方案,我很高兴接受您的回答:)
    【解决方案3】:

    是的,肯定有解决方案,您可以根据您的动画要求创建多个图像帧,然后您可以将这些图像放在可绘制文件夹中。然后使用这样的动画。 <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>

    更多信息请通过this link
    祝你好运!

    【讨论】:

    • 感谢您的回复。我的要求是必须动态添加图像。在第一个活动中,我必须为图像和行指定一个数字。必须传递意图,并且在第二个屏幕中,必须在指定的行数上逐一显示图像数量。我已经采取了表格布局,除了每个图像的动画一个接一个之外,一切都完成了。我无法做到这一点。我什至使用了 addView(image,position);但它没有用..所以请帮助我:(
    【解决方案4】:

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

    【讨论】:

      【解决方案5】:
       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]);             
      
              };
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-22
        • 2015-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多