逐帧动画后停止在Android中隐藏ImageView

时间:2013-03-04 11:23:44

标签: android animation imageview hide

我刚刚在图像视图中应用逐帧动画,我只是逐帧使用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);
    }
        }

animation.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幅图像动画后隐藏图像视图,稍后再重新开始动画

我在制作广告图片。所以我需要短时间显示图像,之后它会重新启动。

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

1 个答案:

答案 0 :(得分: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,如下所示:  按钮btn1 =(按钮)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();

        }