Android Frame Animation 实现图片刷新等待过程
2016-04-28 09:01
615 查看
Android 动画效果很多,这里记载下帧的动画效果,就是每隔一段时间就更新一张图片。以此来循环播放图片,达到动画的效果。
动画效果都会有两种方式实现,一个XML布局方式,一个java代码方式。
这里记载下xml布局方式,并实现两种开始动画的方式:1、一打开页面就自动播放动画;2、通过点击事件来播放动画。
说是xml布局,我们当然的先实现一个这样的布局。这个布局文件您可以放在anim或者drawable文件夹中,建议放在drawable文件夹中。因为你在这个文件夹中新建一个布局文件时,会有这样一个 ”animation-list“提示。具体代码如下:
这个里面放上你的图片,每隔?秒换下一张有你自己决定。oneshot=false ,表示循环播放,反之只播放一次。
这个弄好后,你只需在你的布局文件中,为一个imageview或者其他控件加上这样一个背景就行了。如:
然后再代码中找到上述的Imageview:
当然在更多情况下我们只需要一进这个页面就要开始动画的播放,这也是可以实现的。
一种,如果你这个类是个activity。那么你只要在:
这个方法里实现动画的开始。
还有一种就是另外开启一个线程来实现动画的开始。
ok,简单的记载下。
动画效果都会有两种方式实现,一个XML布局方式,一个java代码方式。
这里记载下xml布局方式,并实现两种开始动画的方式:1、一打开页面就自动播放动画;2、通过点击事件来播放动画。
说是xml布局,我们当然的先实现一个这样的布局。这个布局文件您可以放在anim或者drawable文件夹中,建议放在drawable文件夹中。因为你在这个文件夹中新建一个布局文件时,会有这样一个 ”animation-list“提示。具体代码如下:
<!-- Animation frames are wheel0.png -- wheel5.png files inside the res/drawable/ folder --> <animation-list android:id="@+id/selected" android:oneshot="false"> <item android:drawable="@drawable/wheel0" android:duration="50" /> <item android:drawable="@drawable/wheel1" android:duration="50" /> <item android:drawable="@drawable/wheel2" android:duration="50" /> <item android:drawable="@drawable/wheel3" android:duration="50" /> <item android:drawable="@drawable/wheel4" android:duration="50" /> <item android:drawable="@drawable/wheel5" android:duration="50" /> </animation-list>
这个里面放上你的图片,每隔?秒换下一张有你自己决定。oneshot=false ,表示循环播放,反之只播放一次。
这个弄好后,你只需在你的布局文件中,为一个imageview或者其他控件加上这样一个背景就行了。如:
<ImageView android:id="@+id/refresh_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:layout_gravity="center" android:background="@drawable/waitting" android:visibility="visible"/>
然后再代码中找到上述的Imageview:
ImageView img = (ImageView)findViewById(R.id.refresh_text); // Get the background, which has been compiled to an AnimationDrawable object. AnimationDrawable frameAnimation = (AnimationDrawable) img.getBackground(); //通过其他控件的点击事情来促发这个动画的开始,要不然只显示一帧。 public void onclick(){
frameAnimation.start();
}
当然在更多情况下我们只需要一进这个页面就要开始动画的播放,这也是可以实现的。
一种,如果你这个类是个activity。那么你只要在:
@Override public void onWindowFocusChanged(boolean hasFocus) { // TODO Auto-generated method stub super.onWindowFocusChanged(hasFocus); anim.start(); }
这个方法里实现动画的开始。
还有一种就是另外开启一个线程来实现动画的开始。
private Handler handler = new Handler();
private Runnable runable = new Runnable()
{
@Override
public void run()
{
// TODO Auto-generated method stub
anim.start();
}};
//开始动画
handler.postDelayed(runable, 300);
ok,简单的记载下。
相关文章推荐
- Android-SharedPreferences保存登录数据
- Android Studio教程从入门到精通
- Android : The import java.util cannot be resolved
- android轻量级缓存框架ASimpleCache分析
- Android SharedPreferences的数据存储
- Android-AlertDialog各种对话框的用法
- Android杂记(3)关于Uri转化为File
- [修复] Firemonkey 画线问题(Android & iOS 平台)
- xUtils AndroidStudio安装
- xUtils AndroidStudio安装
- Android SQLite Database的使用模板
- Android 4.4 packageinstaller之权限获取及展现
- Android 自定义下拉刷新上拉加载
- 如何在Android Studio中添加RecyclerView-v7支持包
- Android学习必用-推荐大牛的博客(持续更新中……)(by 星空武哥)
- Android的Google官方设计指南(上)
- Android开发经验漫谈-XActivity
- Android 异步加载图片-LruCache和SD卡或手机缓存-三级缓存原理加载图片
- Android开发笔记之《知识漏点纪录与学习》
- 使用Cydia Substrate 从Native Hook Android Java世界