0

我只是在图像视图中应用逐帧动画,我只是逐帧使用 2 个图像

main.java

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView iv = (ImageView) findViewById( R.id.imageView1);

    iv.setBackgroundResource(R.anim.animation);
    AnimationDrawable ac= (AnimationDrawable) iv.getBackground();
    ac.start();

    //ac.stop();
if(ac.isRunning()==false){
        iv.setVisibility(View.INVISIBLE);
    }
        }

动画.xml

<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/image1" android:duration="1000"/>
<item android:drawable="@drawable/image2" android:duration="1000"/>
 </animation-list>

activity_main.xml(布局)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"

android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true" />

   </RelativeLayout>

我也很困惑在哪里停止这个动画,我需要在 2 图像动画后隐藏图像视图并稍后重新启动动画

我正在处理广告图片。所以我需要在短时间内显示图像,然后它会再次重新启动。

如果有人知道这个解决方案。请帮我。

4

1 回答 1

0

ImageView iv = (ImageView) findViewById(R.id.imageView1);

iv.setBackgroundResource(R.anim.animation);
AnimationDrawable ac= (AnimationDrawable) iv.getBackground();
ac.start();

您可以简单地将一张空图片作为动画中的最后一项:

    <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
     android:oneshot="true"
 >
 <item android:drawable="@drawable/image1" android:duration="1000"/>
 <item android:drawable="@drawable/image2" android:duration="1000"/>
  <item android:drawable="@drawable/dummy" android:duration="1000"/>

     </animation-list>

并且 oneshot=true。

要重新启动,您可以调用 onClick 方法并再次调用 start,如下所示: Button btn1 = (Button) findViewById(R.id.btn1);

    btn1.setOnClickListener(new View.OnClickListener() {
      @Override
        public void onClick(View view) {

            ImageView iv = (ImageView) findViewById( R.id.imageView1);

               iv.setBackgroundResource(R.anim.animation);
               AnimationDrawable ac= (AnimationDrawable) iv.getBackground();
              ac.start();

        }
于 2013-03-04T11:32:47.240 回答