AnimationDrawable---界面加载动画(一帧一帧的图片组成的动画)
2017-08-03 14:11
639 查看
效果如图所示:
![](https://img-blog.csdn.net/20170803140248192?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5fbkFs/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](https://img-blog.csdn.net/20170803140304014?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5fbkFs/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
1.准备好所需图片,一帧一帧的所有图片,然后在drawable中新建一个 animation.xml:
2.在style里添加一个对话框样式:
3.对话框布局文件:
4.自定义LoadingDialog extends Dialog:
5.activity中直接使用此对话框(此处使用一个延迟定时来模拟获取数据的整个过程,先把文字隐藏,等时间到了后显示出来):
补充:
![](https://img-blog.csdn.net/20170814105256086?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQW5fbkFs/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
这个帖子讲得很好,还介绍了drawable其他的标签
Android样式的开发:drawable汇总篇 - 安卓 - 伯乐在线 http://android.jobbole.com/82117/
1.准备好所需图片,一帧一帧的所有图片,然后在drawable中新建一个 animation.xml:
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@mipmap/anim_1" android:duration="100" /> <item android:drawable="@mipmap/anim_2" android:duration="100" /> <item android:drawable="@mipmap/anim_3" android:duration="100" /> <item android:drawable="@mipmap/anim_4" android:duration="100" /> <item android:drawable="@mipmap/anim_5" android:duration="100" /> <item android:drawable="@mipmap/anim_6" android:duration="100" /> <item android:drawable="@mipmap/anim_7" android:duration="100" /> <item android:drawable="@mipmap/anim_8" android:duration="100" /> <item android:drawable="@mipmap/anim_9" android:duration="100" /> <item android:drawable="@mipmap/anim_10" android:duration="100" /> <item android:drawable="@mipmap/anim_11" android:duration="100" /> <item android:drawable="@mipmap/anim_12" android:duration="100" /> <item android:drawable="@mipmap/anim_13" android:duration="100" /> <item android:drawable="@mipmap/anim_14" android:duration="100" /> <item android:drawable="@mipmap/anim_15" android:duration="100" /> <item android:drawable="@mipmap/anim_16" android:duration="100" /> <item android:drawable="@mipmap/anim_17" android:duration="100" /> <item android:drawable="@mipmap/anim_18" android:duration="100" /> <item android:drawable="@mipmap/anim_19" android:duration="100" /> <item android:drawable="@mipmap/anim_20" android:duration="100" /> <item android:drawable="@mipmap/anim_21" android:duration="100" /> <item android:drawable="@mipmap/anim_22" android:duration="100" /> <item android:drawable="@mipmap/anim_23" android:duration="100" /> <item android:drawable="@mipmap/anim_24" android:duration="100" /> <item android:drawable="@mipmap/anim_25" android:duration="100" /> <item android:drawable="@mipmap/anim_26" android:duration="100" /> <item android:drawable="@mipmap/anim_27" android:duration="100" /> <item android:drawable="@mipmap/anim_28" android:duration="100" /> <item android:drawable="@mipmap/anim_29" android:duration="100" /> <item android:drawable="@mipmap/anim_30" android:duration="100" /> <item android:drawable="@mipmap/anim_31" android:duration="100" /> <item android:drawable="@mipmap/anim_32" android:duration="100" /> <item android:drawable="@mipmap/anim_33" android:duration="100" /> <item android:drawable="@mipmap/anim_34" android:duration="100" /> <item android:drawable="@mipmap/anim_35" android:duration="100" /> <item android:drawable="@mipmap/anim_36" android:duration="100" /> <item android:drawable="@mipmap/anim_37" android:duration="100" /> <item android:drawable="@mipmap/anim_38" android:duration="100" /> <item android:drawable="@mipmap/anim_39" android:duration="100" /> </animation-list>
2.在style里添加一个对话框样式:
<style name="alert_dialog" parent="android:Theme.Dialog"> <item name="android:windowIsFloating">true</item> <item name="android:windowIsTranslucent">false</item> <item name="android:windowNoTitle">true</item> <item name="android:windowFullscreen">false</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowAnimationStyle">@null</item> <item name="android:backgroundDimEnabled">true</item> <item name="android:backgroundDimAmount">0.4</item> </style>
3.对话框布局文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:id="@+id/img" android:layout_centerInParent="true" android:layout_width="60dp" android:layout_height="60dp" /> <TextView android:layout_centerInParent="true" android:layout_below="@+id/img" android:layout_marginTop="10dp" android:text="正在加载..." android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>
4.自定义LoadingDialog extends Dialog:
public class LoadingDialog extends Dialog { private AnimationDrawable anim; public LoadingDialog(Context context) { super(context, R.style.alert_dialog);// R.style.alert_dialog自定义的style } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.dialog_animation); ImageView img = (ImageView) findViewById(R.id.img); img.setImageResource(R.drawable.animation); anim = (AnimationDrawable) img.getDrawable(); anim.start(); } @Override public void dismiss() { super.dismiss(); anim.stop(); } @Override public void show() { super.show(); WindowManager windowManager = getWindow().getWindowManager(); Display display = windowManager.getDefaultDisplay(); WindowManager.LayoutParams lp = this.getWindow().getAttributes(); lp.width = (int)(display.getWidth()); lp.height = (int)(display.getHeight()); this.getWindow().setAttributes(lp); } }
5.activity中直接使用此对话框(此处使用一个延迟定时来模拟获取数据的整个过程,先把文字隐藏,等时间到了后显示出来):
public class HomeActivity extends AppCompatActivity { private LoadingDialog dialog; private TextView tv_text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); tv_text = (TextView) this.findViewById(R.id.tv_text); //显示加载动画 dialog = new LoadingDialog(HomeActivity.this); dialog.show(); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(10000); runOnUiThread(new Runnable() { @Override public void run() { //取消加载动画 dialog.dismiss(); tv_text.setVisibility(View.VISIBLE); } }); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); } }
补充:
这个帖子讲得很好,还介绍了drawable其他的标签
Android样式的开发:drawable汇总篇 - 安卓 - 伯乐在线 http://android.jobbole.com/82117/
相关文章推荐
- Android中使用多张图片组成动画 AnimationDrawable
- Android中使用多张图片组成动画 AnimationDrawable
- 图片动画播放(AnimationDrawable)
- Android学习笔记进阶十一图片动画播放(AnimationDrawable)
- Drawable Animation -- 使用多幅图片实现动画
- Android图片动画播放(AnimationDrawable)
- AnimationDrawable android 动画 初始化界面播放
- Android-AnimationDrawable自定义加载动画dialog
- Android学习笔记进阶十一图片动画播放(AnimationDrawable)
- Android下Animation动画的使用 及 Volley加载图片动画实现
- android之animation-list+图片实现的粘稠的加载动画效果
- Android学习笔记进阶十一图片动画播放(AnimationDrawable)
- android中通过AnimationDrawable实现动画背景图片
- AnimationDrawable监听播放结束及ImageSwitcher动画图片切换,带动画
- Android学习笔记进阶十一图片动画播放(AnimationDrawable)
- Android根据图片名称加载Drawable里面的图片并且显示
- 【iOS开发】关于显示一连串图片组成动画效果UIImageView的使用
- Phaserjs基础教程第二节:加载图片、文字和动画
- 使用View Animation实现动画加载界面
- Android Tween动画之RotateAnimation实现图片不停旋转