我刚刚在图像视图中应用逐帧动画,我只是逐帧使用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幅图像动画后隐藏图像视图,稍后再重新开始动画
我在制作广告图片。所以我需要短时间显示图像,之后它会重新启动。
如果有人知道这个解决方案。请帮帮我。
答案 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();
}