一个带动画的dialog

根据项目需求需要在加载的时候加入一个带动画效果的进度。

最先想到的就是 自定义一个dialog 再加上一个动画就OK了。

so.....

public class CMYProgressDialog extends Dialog {

    public CMYProgressDialog(Context context) {
        super(context, R.style.CMYProgressDialog);
        setContentView(R.layout.layout_loading);
        getWindow().getAttributes().gravity = Gravity.CENTER;
        setCanceledOnTouchOutside(false);
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        ImageView loadingImage = (ImageView) findViewById(R.id.prodlg_loading_iv);
        AnimationDrawable animation =(AnimationDrawable) loadingImage.getBackground();
        if(animation.isRunning()){
            animation.stop();
        }
        animation.start();
    }

等等  好像还需要一个提示消息什么的  那么就再加一个方法

 public CMYProgressDialog setMessage(String strMessage) {
        TextView tvMsg = (TextView) findViewById(R.id.prodlg_loading_msg);
        if (tvMsg != null) {
            tvMsg.setText(strMessage);
        }
        return this;
    }

XML的文件里是这样的

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="@drawable/loading_bg">

    <ImageView
        android:id="@+id/prodlg_loading_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@anim/progress_loading_anim"
        android:layout_gravity="center_horizontal" />

    <TextView
        android:id="@+id/prodlg_loading_msg"
        style="@style/cmy_text_default"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="100dp"
        android:text="@string/common_str_loading_tip"
        android:textColor="@color/white" />

</FrameLayout>

这是ImageView中的动画

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">

    <item
        android:drawable="@drawable/img_progress_01"
        android:duration="300" />
    <item
        android:drawable="@drawable/img_progress_02"
        android:duration="300" />
    <item
        android:drawable="@drawable/img_progress_03"
        android:duration="300" />
    <item
        android:drawable="@drawable/img_progress_04"
        android:duration="300" />
</animation-list>

在需要用到的地方只要

 if (mProgressDialog == null) {
                mProgressDialog = new CMYProgressDialog(mContext);
            }
            mProgressDialog.show();

是不是很简单~~~

时间: 2024-11-10 11:19:53

一个带动画的dialog的相关文章

IOS的一个带动画的多项选择的控件(二)

然后我们来写:TypeSelectView 这个比较简单,我们只要只要每个TypeView的位置,然后作为自己的subview就好了 @interface TypeSelectView : UIView @property(nonatomic) BOOL bShown; @property(nonatomic, strong) TypeView* curSelectedView; -(id)initWithFrame:(CGRect)frame searchType:(int)type; @en

IOS的一个带动画的多项选择的控件(一)

先上效果图: 这个程序分2个层次,一个是顶部的带UITextField的bar,一个是下拉选择的view,下拉选择的view带有4个自定义的UIView 我们先定义一个UIViewController叫MyViewController,然后顶部的bar叫TopBarView,下拉选择的view叫TypeSelectView,像UIButton的自定义的view叫做TypeView TypeView有两种状态,如果手指触摸到的item就是选中状态,所以TypeSelectView应该有个属性表示当

收藏一个带动画效果的ScrollViewer以及ScrollBar的模板

原文:收藏一个带动画效果的ScrollViewer以及ScrollBar的模板 这里介绍一个带动画效果的ScrollViewer和ScrollBar,总共分为两个资源字典,直接拿来引用即可: 1 ScrollBarStyle.xaml <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft

一个带动画效果的颜色选择对话框控件AnimatedColorPickerDialog

android4.4的日历中选择日程显示颜色的时候有一个颜色选择对话框非常漂亮,模仿他的界面我实现了一个类似的对话框,而且带有动画效果. 代码的实现可讲的地方不多,主要是采用了和AlertDialog类似的Builder方式来创建对话框,另外当每个颜色被选择的时候有个按下效果是用纯代码实现的,还有就是可以动态的判断一排可以显示多少个颜色元素.而动画效果我们是使用属性动画实现,如果要做到兼容2.3需要使用第三方库NineOldAndroids来实现属性动画. 源码如下: 1 2 3 4 5 6 7

一个带动画效果的颜色对话框控件AnimatedColorPickerDialog

android4.4的日历中选择日程显示颜色的时候有一个颜色选择对话框非常漂亮,模仿他的界面我实现了一个类似的对话框,而且带有动画效果. 代码的实现可讲的地方不多,主要是采用了和AlertDialog类似的Builder方式来创建对话框,另外当每个颜色被选择的时候有个按下效果 是用纯代码实现的,还有就是可以动态的判断一排可以显示多少个颜色元素.而动画效果我们是使用属性动画实现,如果要做到兼容2.3需要使用第三方库 NineOldAndroids来实现属性动画. 源码如下: package com

一个带动画的页面底部的TabBar的实现

有时有这样一个需求,页面底部有几个图标能够点击,假设一个screenWidth显示不下这些图标,则这一列图标最后一个是more,点击more,能够通过动画展示两列图标 这样来增加layout中: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=&quo

纯css写一个带动画的弹框 visibility + opcity

css能实现各种各样的动态效果,比js实现简单,性能也比js实现高,现在我们就用纯css实现弹窗,主要用到了两个属性 opcity 和 visibility, opctiy 这个属性很简单 控制元素透明度 ,visibility控制元素的显示和隐藏,他和display有一个很重要的区别,visibility可以用transition来进行过渡,而display并不可以,这就是我们不用display的原因 可以配合上transform: scale() 让弹窗更有动态感觉 全部代码: <!DOCT

07---关于动态创建和销毁带动画的UIVew

在我们做开发的过程中经常会遇到在你触发了某个动作之后,需要动态添加一个带动画的UIView,执行完以后就销毁这个UIView #pragma mark 展示最新微博的数目 - (void)showNewStatusCount:(int)count { // 1.创建按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; btn.enabled = NO; // 设置按钮禁用 btn.adjustsImageWhenDisa

写一个android带动画效果的TabHost(类似微博客户端的切换效果)

先上图: 这个Layout是: <?xml version="1.0" encoding="UTF-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" andro