在Android中,帧动画的本质是把一组预先准备好的图片循环切换播放,造成一种动画效果。 实现帧动画有两种方式,即 把准备的素材放到drawable目录 在 布局文件:布局文件中添加两个点击按钮和一个图片控件 在 Java代码实现帧动画跟xml很类似,只有Activity部分有点区别帧动画概念
帧动画实现
xml
和java
方法1:xml实现帧动画
第一步:导入帧动画素材
第二步:创建帧动画文件
drawable
目录下创建一个animation_flower.xml
的文件,往文件中添加<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="https://schemas.android.com/apk/res/android" android:oneshot="false">// 是否只播放一次 false 循环播放 <item android:drawable="@drawable/img01" android:duration="200" /> <item android:drawable="@drawable/img02" android:duration="200" /> <item android:drawable="@drawable/img03" android:duration="200" /> <item android:drawable="@drawable/img04" android:duration="200" /> <item android:drawable="@drawable/img05" android:duration="200" /> </animation-list>
第三步:布局文件和Activity
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:app="https://schemas.android.com/apk/res-auto" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="100dp" android:text="开始动画" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:text="结束动画" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button" /> <ImageView android:id="@+id/image" android:layout_width="200dp" android:layout_height="200dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" android:background="@drawable/animation_flower" app:layout_constraintTop_toBottomOf="@+id/button2" /> </androidx.constraintlayout.widget.ConstraintLayout>
Activity
中添加启动&停止动画代码public class MainActivity extends AppCompatActivity { Button mButtonStart; Button mButtonStop; ImageView mImageViewShow; AnimationDrawable mAnimationDrawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageViewShow = findViewById(R.id.image); // 获取动画对象 mAnimationDrawable = (AnimationDrawable) mImageViewShow.getBackground(); mButtonStart = findViewById(R.id.button); mButtonStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //开始动画 mAnimationDrawable.start(); } }); mButtonStop = findViewById(R.id.button2); mButtonStop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //结束动画 mAnimationDrawable.stop(); } }); } }
方法2:用Java代码实现帧动画
public class MainActivity extends AppCompatActivity { Button mButtonStart; Button mButtonStop; ImageView mImageViewShow; AnimationDrawable mAnimationDrawable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mImageViewShow = findViewById(R.id.image); // 获取动画对象 mAnimationDrawable =new AnimationDrawable(); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img01),200); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img02),200); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img03),200); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img04),200); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img05),200); mAnimationDrawable.addFrame(getResources().getDrawable(R.drawable.img06),200); mAnimationDrawable.setOneShot(false);//设置循环播放 mImageViewShow.setBackground(mAnimationDrawable); mButtonStart = findViewById(R.id.button); mButtonStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //开始动画 mAnimationDrawable.start(); } }); mButtonStop = findViewById(R.id.button2); mButtonStop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //结束动画 mAnimationDrawable.stop(); } }); } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算