界面加载动画(一帧一帧的图片组成的动画)
来源:互联网 发布:mac自带快捷键怎么设置 编辑:程序博客网 时间:2024/06/10 07:13
效果如图所示:
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/
阅读全文
0 0
- 界面加载动画(一帧一帧的图片组成的动画)
- IOS 连续图片组成的动画
- iphone 如何播放多张图片组成的动画
- CSS3实现的图片加载动画效果
- 界面的动画跳转
- 移动APP界面的加载动画与进度条
- 加载动画的实现
- 飞机的动画加载
- 骨骼动画的加载
- 简单的加载动画
- 动画的加载方式
- android一连串图片组成动画
- QQ2013登录界面动画变成静态图片的解决方法
- iOS——各种图片、界面变化的动画效果
- 自定义progressdialog加载动画,这里还有旋转的加载条,美团,多个图片动画
- 自定义progressdialog加载动画,这里还有旋转的加载条,美团,多个图片动画
- 图片的旋转动画
- 图片的动画
- .gitignore
- RecyclerView使用介绍
- OpenCv 中Otsu 算法实现
- c/c++ 双向链表 创建 插入 删除
- MySQL中的变量定义及区别
- 界面加载动画(一帧一帧的图片组成的动画)
- MD5 encoding
- 从一个页面关闭后台,再重新回到前台的处理
- 详述银行卡支付方式
- 手机自动访问generate_204
- Java开发异常处理
- 代码干货|Python API快餐教程(1)
- 【数据结构】LinkedList原理及实现学习总结
- B