http://blog.csdn.net/jiahui524转自
仔细的看了看自己的博客上一篇写的博客的时间,发现好久好久没更新自己的博客了,主要是目前自己手上的这个外包项目太赶了,实在没太多的时间来更新呀,只能心有余而力不足呀。以后还是尽量的抽更多的时间来分享自己的一些学习方法或者自己胡乱搞的新东西,呵呵。废话不多说了,先进入今天要给大家分享的是一个定制的属于自己的Dialog。
这里要实现的是一个仿Zaker的等待对话框,相信用过Zaker的人也很多也比较熟悉了。
继续博客风格,先上效果图,再分析然后放源代码
实现的效果图:
对于Dialog的一些用法大家还不熟悉的可以上网自己搜索一下,其实要实现这样的一个效果很简单,无外乎就是继承了Dialog使用上了自己的布局和自己的主题。然后中间的那个旋转的刷新按钮就是一个旋转动画。好了不分析多了,相信聪明的你一看就懂,下面给出核心的代码:
结出核心的代码:
[java] view plaincopyprint?
public class MyProgressDialog extends Dialog {
private Context context = null;
private TextView tv_msg;
public MyProgressDialog(Context context) {
super(context);
this.context = context;
}
public MyProgressDialog(Context context, boolean cancelable,
OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
this.context = context;
// TODO Auto-generated constructor stub
}
public MyProgressDialog(Context context, int theme) {
super(context, theme);
this.context = context;
// 加载自己定义的布局
View view = LayoutInflater.from(context)
.inflate(R.layout.loading, null);
ImageView img_loading = (ImageView) view.findViewById(R.id.img_loading);
ImageView img_close = (ImageView) view.findViewById(R.id.img_close);
tv_msg = (TextView) view.findViewById(R.id.tv_msg);
// 加载XML文件中定义的动画
RotateAnimation rotateAnimation = (RotateAnimation) AnimationUtils
.loadAnimation(context, R.anim.rotate_refresh_drawable_default);
// 开始动画
img_loading.setAnimation(rotateAnimation);
//为Dialoge设置自己定义的布局
setContentView(view);
//为close的那个文件添加事件
img_close.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
dismiss();
}
});
}
public void setMsg(String msg) {
if (null != tv_msg) {
tv_msg.setText(msg);
}
}
public void setMsg(int resId) {
if (null != tv_msg) {
tv_msg.setText(context.getString(resId));
}
}
}
旋转动画的文件:
[html] view plaincopyprint?
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="800"
android:fromDegrees="0.0"
android:interpolator="@android:anim/linear_interpolator"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:repeatCount="infinite"
android:toDegrees="360.0" />
在使用的Activity只要注意在使用的构造方法中要记得为其设置自己定义的主题
[java] view plaincopyprint?
progressDialog = new MyProgressDialog(this,
R.style.CustomProgressDialog);
样式文件:
[html] view plaincopyprint?
<style name="CustomDialog" parent="@android:style/Theme.Dialog">
<item name="android:windowFrame">@null</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
<item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
</style>
<style name="CustomProgressDialog" parent="@style/CustomDialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
</style>
好了,如此简单的一个功能就完成了。希望能对大家有点小小的帮助吧。
分享到:
相关推荐
Android 模仿Zaker加载框
android仿zaker效果demo,效果比zaker复杂,竖向拖动,每屏还有其他自定义view。
类似zaker加载文章的自定义ProgressDialog
Android 仿zaker效果的拖拽排序可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页。
Android 仿zaker效果demo(不使用用gridview).rar
Android仿zaker效果demo不使用用gridview.zip
android仿zaker效果demo(不使用用gridview).rar
Android 仿zaker效果demo(不使用用gridview).zip项目安卓应用源码下载Android 仿zaker效果demo(不使用用gridview).zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发...
Android仿zaker效果的拖拽排序.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
模仿ZAKER的主界面实现,可以添加,删除,平移ITEM,
仿zaker效果demo不使用用gridview.zip
Android 应用项目开发源码 参考和学习使用
android安卓仿zaker界面源码wp风格 源码 用来学习的
Android应用源码开发Demo,主要用于毕业设计学习。
主要介绍了Android仿zaker用手向上推动的特效,结合完整实例形式分析了Android滑动切换效果的实现步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
android拖拽 拖动 效果 仿zake 自动移位 优化性能版本
Android经典界面 ZAKER风格 ,界面简洁、大气,集成南京公交路线查询、指南针、音乐播放、天气查询小功能。
仿zaker效果的拖拽排序。可以动态设置列数,动态增加或者减少item,当一页填满自动增加到下一页,当页数大于1,可以左右翻页。项目地址:https://github.com/zzhouj/Android-DraggableGridViewPager 效果图: 如何...