精华内容
下载资源
问答
  • Dialog弹出动画

    2019-05-01 01:45:26
    NULL 博文链接:https://274137570-qq-com.iteye.com/blog/2406131
  • 自定义dialog 弹出动画

    2016-12-12 13:01:44
    自定义一个加载时弹出dialog动画可以拿来直接用,最新测试过的。资源图片是网上找到的。但是代码不能实现功能,所以就把图片收藏了,代码从新实现。在这里设置动画效果,一个imageview 设置背景animation-list, ...

    自定义一个加载时弹出的dialog动画

    可以拿来直接用,最新测试过的。资源图片是网上找到的。但是代码不能实现功能,所以就把图片收藏了,代码从新实现。

    在这里设置动画效果,一个imageview 设置背景animation-list,

     public void onWindowFocusChanged(boolean hasFocus) {
            ImageView imageView = (ImageView) findViewById(R.id.loadingImg);
            // 获取ImageView上的动画背景
            AnimationDrawable spinner = (AnimationDrawable) imageView.getBackground();
            // 开始动画
            spinner.start();
        }

    animation-list的代码:

    <?xml version="1.0" encoding="utf-8"?>
    <animation-list
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:oneshot="false">
        <item
            android:drawable="@drawable/loading_01"
            android:duration="100" />
        <item
            android:drawable="@drawable/loading_02"
            android:duration="100" />
        <item
            android:drawable="@drawable/loading_03"
            android:duration="100" />
        <item
            android:drawable="@drawable/loading_04"
            android:duration="100" />
    
    
    </animation-list>

    android:duration 这个属性是持续的时间,100毫秒。

    还有一个dialog的风格R.style.Custom_Progress

    dialog= new CustomProgress(context, R.style.Custom_Progress);

    在styles里面自定义一个 ,代码;

    <!--自定义dialog-->
        <style name="Custom_Progress" 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>
            <item name="android:windowBackground">@android:color/transparent</item>
            <item name="android:windowNoTitle">true</item>
        </style>

    使用的时候:

    dialog=CustomProgress.getDialog(this,"...",true,null);
    dialog.show();

    第一个参数 上下文对象,第二个参数:提示信息(不是标题),第三个参数:返回键能不能取消效果,第四个;返回键取消的监听处理。

    最后全部代码: 代码少不上传,找几张图片就可以用了,亲测。

    public class CustomProgress  extends Dialog {
        static CustomProgress dialog;
    
        public CustomProgress(Context context) {
            super(context);
        }
    
        public CustomProgress(Context context, int theme) {
            super(context, theme);
    
        }
    
        /**
         * 当窗口焦点改变时调用
         */
        public void onWindowFocusChanged(boolean hasFocus) {
            ImageView imageView = (ImageView) findViewById(R.id.loadingImg);
            // 获取ImageView上的动画背景
            AnimationDrawable spinner = (AnimationDrawable) imageView.getBackground();
            // 开始动画
            spinner.start();
        }
    
        /**
         * 给Dialog设置提示信息
         *
         * @param message
         */
        public void setMessage(CharSequence message) {
            if (message != null && message.length() > 0) {
                findViewById(R.id.loadingTv).setVisibility(View.VISIBLE);
                TextView txt = (TextView) findViewById(R.id.loadingTv);
                txt.setText(message);
                txt.invalidate();
            }
        }
    
        /**
         * 弹出自定义ProgressDialog
         *
         * @param context
         *            上下文
         * @param message
         *            提示
         * @param cancelable
         *            是否按返回键取消
         * @param cancelListener
         *            按下返回键监听
         * @return
         */
        public static CustomProgress  getDialog(Context context, CharSequence message, boolean cancelable, OnCancelListener cancelListener) {
            dialog= new CustomProgress(context, R.style.Custom_Progress);
            dialog.setTitle("");
            dialog.setContentView(R.layout.progress_dialog);
            if (message == null || message.length() == 0) {
                dialog.findViewById(R.id.loadingTv).setVisibility(View.GONE);
            } else {
                TextView txt = (TextView) dialog.findViewById(R.id.loadingTv);
                txt.setText(message);
            }
            // 按返回键是否取消
            dialog.setCancelable(cancelable);
            // 监听返回键处理
            dialog.setOnCancelListener(cancelListener);
            // 设置居中
            dialog.getWindow().getAttributes().gravity = Gravity.CENTER;
            WindowManager.LayoutParams lp = dialog.getWindow().getAttributes();
            // 设置背景层透明度
            lp.dimAmount = 0.2f;
            dialog.getWindow().setAttributes(lp);
            // dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
            return dialog;
        }
    
    }
    
    展开全文
  • 只需要修改NiftyDialogBuilder类中的... instance = new NiftyDialogBuilder(context, R.style.dialog_untran); } return instance; } 不知道这个方法会不会有点浪费内存或者其他问题

    只需要修改NiftyDialogBuilder类中的getInstance()方法

    public static NiftyDialogBuilder getInstance(Context context) {
    
            int ort=context.getResources().getConfiguration().orientation;
          /*  if (mOrientation!=ort){
                mOrientation=ort;
                instance=null;
            }*/
    
            if (instance == null) {
    			synchronized (NiftyDialogBuilder.class) {
    				if (instance == null) {
    					instance = new NiftyDialogBuilder(context,
    							R.style.dialog_untran);
    				}
    			}
    		} else {
    			instance = new NiftyDialogBuilder(context, R.style.dialog_untran);
    		}
    		return instance;
    
        }

    不知道这个方法会不会有点浪费内存或者其他问题


    展开全文
  • Dialog弹出动画

    2021-05-21 15:04:38
    Dialog弹出动画(上下左右的弹出) class CustomDialog(context: Context) : Dialog(context, R.style.user_default_dialog) { private var mList = ArrayList<String>() init { init() } fun init...

    Dialog的弹出动画(上下左右的弹出)

    class CustomDialog(context: Context) : Dialog(context, R.style.user_default_dialog) {
    
        private var mList = ArrayList<String>()
    
        init {
            init()
        }
    
        fun init() {
            setContentView(R.layout.custom_dialog)
    
            for (index in 0..100) {
                mList.add("动画上下左右都有自己设置,就是玩$index")
            }
            recyclerView.layoutManager = LinearLayoutManager(context)
            val mAdapter = CustomDialogAdapter(R.layout.custom_dialog_item)
            mAdapter.setNewInstance(mList)
            recyclerView.adapter = mAdapter
        }
    }

     

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="15dp"
            android:text="自定义dialog动画弹出"
            android:textColor="@color/black"
            android:textSize="18sp"
            tools:ignore="HardcodedText,MissingConstraints" />
    
        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recyclerView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_constraintTop_toBottomOf="@+id/tv" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    class CustomDialogAdapter(layoutRestId: Int) : BaseQuickAdapter<String, BaseViewHolder>(layoutRestId) {
    
        override fun convert(holder: BaseViewHolder, item: String) {
            item.run {
                holder.setText(R.id.tv, item)
            }
        }
    }
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
    
        <TextView
            android:id="@+id/tv"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="15dp"
            android:text="动画快出来"
            android:textColor="@color/black"
            android:textSize="16sp" />
    
        <View
            android:id="@+id/view"
            android:layout_width="match_parent"
            android:layout_height="0.5dp"
            android:background="#ECEBE8" />
    
    </LinearLayout>
    
    <resources>
    
     <style name="user_default_dialog" parent="@style/Theme.AppCompat.Dialog">
            <item name="android:windowFrame">@null</item>
            <!-- 边框 -->
            <item name="android:windowIsFloating">true</item>
            <!-- 是否浮现在activity之上 -->
            <item name="android:windowIsTranslucent">true</item>
            <!-- 半透明 -->
            <item name="android:windowNoTitle">true</item>
            <!-- 无标题 -->
            <item name="android:windowBackground">@android:color/transparent</item>
            <!-- 背景透明 -->
            <item name="android:backgroundDimEnabled">false</item>
            <!-- 模糊 -->
            <item name="android:backgroundDimAmount">0.4</item>
            <!-- 设置窗口的透明度, 0.0~1.0,1表示不透明-->
        </style>
    
        <!--    从上往下弹出-->
        <style name="AnimTop" parent="@android:style/Animation">
            <!--进入动画-->
            <item name="android:windowEnterAnimation">@anim/dialog_top_in</item>
            <!--退出动画-->
            <item name="android:windowExitAnimation">@anim/dialog_top_out</item>
        </style>
        <!--    .从下往上弹出:-->
        <style name="AnimBottom" parent="@android:style/Animation">
            <item name="android:windowEnterAnimation">@anim/dialog_bottom_in</item>
            <item name="android:windowExitAnimation">@anim/dialog_bottom_out</item>
        </style>
    
        <!--    .从左往右弹出:-->
        <style name="AnimLeft" parent="@android:style/Animation">
            <item name="android:windowEnterAnimation">@anim/dialog_left_in</item>
            <item name="android:windowExitAnimation">@anim/dialog_left_out</item>
        </style>
    
        <!--    从右往左弹出:-->
        <style name="AnimRight" parent="@android:style/Animation">
            <item name="android:windowEnterAnimation">@anim/dialog_right_in</item>
            <item name="android:windowExitAnimation">@anim/dialog_right_out</item>
        </style>
    
        <!--    从中间弹出:-->
        <style name="AnimCenter" parent="@android:style/Animation">
            <item name="android:windowEnterAnimation">@anim/dialog_center_in</item>
            <item name="android:windowExitAnimation">@anim/dialog_center_out</item>
        </style>
    
    </resources>
    <!--    从上往下弹出-->
    <style name="AnimTop" parent="@android:style/Animation">
        <!--进入动画-->
        <item name="android:windowEnterAnimation">@anim/dialog_top_in</item>
        <!--退出动画-->
        <item name="android:windowExitAnimation">@anim/dialog_top_out</item>
    </style>
     //dialog_top_in
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200"
        android:fillAfter="true">
        <scale
            android:fromXScale="1"
            android:toXScale="1"
            android:fromYScale="0"
            android:toYScale="1"
            android:pivotX="0"
            android:pivotY="0"/>
    
    </set>

    //dialog_top_out

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200"
        android:fillAfter="false">
        <scale
            android:fromXScale="1"
            android:toXScale="1"
            android:fromYScale="1"
            android:toYScale="0"
            android:pivotX="0"
            android:pivotY="0" />
       
    </set>
    <!--    .从下往上弹出:-->
    <style name="AnimBottom" parent="@android:style/Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_bottom_in</item>
        <item name="android:windowExitAnimation">@anim/dialog_bottom_out</item>
    </style>

    //dialog_bottom_in

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200">
       
        <scale
            android:fromXScale="1"
            android:fromYScale="0"
            android:pivotX="0"
            android:pivotY="100%"
            android:toXScale="1"
            android:toYScale="1" />
    
    </set>
    

    //dialog_bottom_out

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200">
       
        <scale
            android:fromXScale="1"
            android:fromYScale="1"
            android:pivotX="0"
            android:pivotY="100%"
            android:toXScale="1"
            android:toYScale="0" />
    </set>
    <!--    .从左往右弹出:-->
    <style name="AnimLeft" parent="@android:style/Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_left_in</item>
        <item name="android:windowExitAnimation">@anim/dialog_left_out</item>
    </style>

    //dialog_left_in

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:fromXDelta="-100%p"
            android:toXDelta="0"
            android:duration="300"/>
    
    </set>

    //dialog_left_out

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="300">
    
        <translate
            android:fromXDelta="0"
            android:toXDelta="-100%p" />
    
    </set>
    <!--    从右往左弹出:-->
    <style name="AnimRight" parent="@android:style/Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_right_in</item>
        <item name="android:windowExitAnimation">@anim/dialog_right_out</item>
    </style>

    //dialog_right_in

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:fromXDelta="100%p"
            android:toXDelta="0"
            android:duration="300"/>
    
    </set>
    

    /dialog_right_out

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    
        <translate
            android:fromXDelta="0"
            android:toXDelta="100%p"
            android:duration="300"/>
    
    </set>
    <!--    从中间弹出:-->
    <style name="AnimCenter" parent="@android:style/Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_center_in</item>
        <item name="android:windowExitAnimation">@anim/dialog_center_out</item>
    </style>

    //dialog_center_in

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200">
        <scale
            android:fromXScale="0"
            android:fromYScale="0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1"
            android:toYScale="1" />
    </set>

    //dialog_center_out

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="200">
        <scale
            android:fromXScale="1"
            android:fromYScale="1"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0"
            android:toYScale="0" />
    </set>

     

     

    //调用

    public class ScreenUtil {
        //px转dp
        public static int dp2px(Context context, float dp) {
            return (int) (dp * context.getResources().getDisplayMetrics().density + 0.5f);
        }
    
        //获取屏幕的宽度
        public static int getScreenWidth(Context context) {
            WindowManager manager = (WindowManager) context
                    .getSystemService(Context.WINDOW_SERVICE);
            Display display = manager.getDefaultDisplay();
            return display.getWidth();
        }
    }
    class MainActivity : AppCompatActivity() {
    
        private val mUrl: String = "https://productimg.xbiao.com/25/600_900/4366916153456432.jpg"
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            //Dialog全屏,去掉状态栏的方式 https://www.jb51.net/article/183394.htm
            window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)//全屏
            val dialog = CustomDialog(this)
            dialog.window?.setGravity(Gravity.END)
    //        dialog.window?.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND) //去掉dialog蒙层
            dialog.window?.setDimAmount(0f)//核心代码 解决了无法去除遮罩问题
            dialog.window?.setDimAmount(0.4f)
            dialog.window?.setLayout(
                ScreenUtil.getScreenWidth(this) - ScreenUtil.dp2px(
                    this,
                    100F
                ), ViewGroup.LayoutParams.MATCH_PARENT
            )
    
            bt_top_dialog.setOnClickListener {
                dialog.window?.setWindowAnimations(R.style.AnimTop)
                dialog.show()
            }
    
            bt_bottom_dialog.setOnClickListener {
                dialog.window?.setWindowAnimations(R.style.AnimBottom)
                dialog.show()
            }
    
            bt_center_dialog.setOnClickListener {
                dialog.window?.setWindowAnimations(R.style.AnimCenter)
                dialog.show()
            }
    
            bt_left_dialog.setOnClickListener {
                dialog.window?.setWindowAnimations(R.style.AnimLeft)
                dialog.show()
            }
    
            bt_right_dialog.setOnClickListener {
                dialog.window?.setWindowAnimations(R.style.AnimRight)
                dialog.show()
            }
    
            dialog.setOnCancelListener {
                Toast.makeText(this, "点外面,干哈呀", Toast.LENGTH_SHORT).show()
            }
        }
    
     
    
    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/const_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        tools:context=".MainActivity">
    
        <Button
            android:id="@+id/bt_right_dialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dialog右侧弹出"
            tools:ignore="MissingConstraints" />
    
        <Button
            android:id="@+id/bt_left_dialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dialog左侧弹出"
            app:layout_constraintStart_toEndOf="@+id/bt_right_dialog"
            tools:ignore="MissingConstraints" />
    
        <Button
            android:id="@+id/bt_top_dialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Dialog上面弹出"
            app:layout_constraintStart_toEndOf="@+id/bt_left_dialog"
            tools:ignore="MissingConstraints" />
    
        <Button
            android:id="@+id/bt_bottom_dialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginLeft="20dp"
            android:text="Dialog下面弹出"
            app:layout_constraintTop_toBottomOf="@+id/bt_right_dialog"
            tools:ignore="MissingConstraints" />
    
        <Button
            android:id="@+id/bt_center_dialog"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="20dp"
            android:layout_marginLeft="20dp"
            android:text="Dialog中间弹出"
            app:layout_constraintTop_toBottomOf="@+id/bt_right_dialog"
            app:layout_constraintStart_toEndOf="@+id/bt_bottom_dialog"
            tools:ignore="MissingConstraints" />
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    展开全文
  • dialog 弹出窗和底部弹出窗的实现和动画效果,中间弹出和底部弹出
  • 窗口 dialog 弹出动画效果

    千次阅读 2014-11-20 16:06:43
    窗口 dialog 弹出动画效果

    1.先创建 anim中的 xml  动画文件 

    <?xml version="1.0" encoding="utf-8"?>  
    <set xmlns:android="http://schemas.android.com/apk/res/android">  


       
          <scale 
           android:fromXScale="0.1"
           android:toXScale="1"
           android:fromYScale="0.1"
           android:toYScale="1"
           android:duration="1000"
           android:pivotX="50%"
           android:pivotY="50%"     
           />
    </set>


    2.在style中声明 diaog 弹出时的动画 已经 退出时的动画


        
          <style name="mainfstyle">
            <item name="android:windowEnterAnimation">@anim/hotel_two</item>
           <item name="android:windowExitAnimation">@anim/activity_close_dwon</item> 
        </style>


    3.在java代码中 实现效果:

      Window dialogWindow = dialog.getWindow();
         dialogWindow.setWindowAnimations(R.style.mainfstyle);


    展开全文
  • Android Dialog弹出方式动画

    千次阅读 2018-12-17 11:28:54
    //自定义Dialog class myDialog extends Dialog{ private Window window = null; public myDialog(Context context) { super(context); } ...
  • 主要介绍了Dialog底部弹出自定义view并且伴随动画弹出和消失的相关资料,需要的朋友可以参考下
  • 自定义Android中Dialog弹出动画

    千次阅读 2016-11-07 10:52:44
    在Android开发中需要自定义Dialog,有时候有需要去指定这个dialog弹出样式,或者是弹出来的动画效果,那这个时候如何去做呢? 下面以一个简单的示例作为介绍,方便以后学习,这个效果是模仿的IOS的弹出和消失效果...
  • 项目前端使用element-ui框架,其提供的dialog弹出框没有过渡动画,比较单调,项目需要实现关闭弹出框时,弹出框逐渐缩小并移动到右上角消失。 只能自己手动修改css样式,这里用到了animation 和 transform属性; ...
  • android 自定义dialog弹出和消失动画

    千次阅读 2015-12-16 17:05:27
    自定义dialog窗口,根据坐标可随意设置dialog显示位置,实现了窗口弹出动画   Java代码: package com.sunxu.org.IndividualityDialog; import android.app.Activity; import android.app.Dialog; ...
  • 1.先创建 anim中的 xml 动画文件 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXSc...
  • 可以实时滑动实现菜单侧滑,图标根据滑动距离旋转,dialog 可以自定义弹出动画,按钮点击改变图标及字体效果
  • 底部弹出dialog 添加简单的进入 退出动画
  • 自定义dialog弹出

    2014-11-24 16:39:53
    自定义dialog弹出框,通过shape和seleter自定义出自己想要的样式。还有弹出的动画,从不同方向弹出和效果。
  • dialog底部弹出自定义view并且伴随动画弹出和消失.pdf
  • 本文转自:android 自定义dialog,窗口动画Java代码:package com.sunxu.org.IndividualityDialog;import Android.app.Activity; import android.app.Dialog; import android.content.Context; import android.os....
  • 通过dialog解析自定义的布局文件,点击触发后以动画方式从底部弹出,类似点击分享底部弹出微信,qq等内容
  • 自定义dialog弹出dialog动画

    万次阅读 2015-10-15 22:01:02
    自定义dialog final Dialog dialog = new Dialog(ChartVisit.this); LayoutInflater inflater=getLayoutInflater(); final View dialogview=inflater.inflate(R.layout.layout_fragmen

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,019
精华内容 5,207
关键字:

dialog弹出动画