精华内容
下载资源
问答
  • 安卓自定义对话框

    2016-06-21 22:57:26
    通过一个类,实现安卓自定义对话框,三种样式。
  • 安卓自定义对话框(位置和大小)

    千次阅读 2016-08-31 14:21:49
    安卓自定义对话框(位置和大小) //自定义对话框 private void showCustomDialog(String msgStr){ try { //使用AlterDialog LinearLayout view = (LinearLayout) LayoutInflater.from(context)....

    安卓自定义对话框(位置和大小)


    		//自定义对话框
    		private void showCustomDialog(String msgStr){
    			try {
    				//使用AlterDialog
    				LinearLayout view = (LinearLayout) LayoutInflater.from(context).inflate(R.layout.dlg_layout, null);
    				final TextView msg = (TextView) view.findViewById(R.id.dlg_msg);
    				final TextView cancel = (TextView) view.findViewById(R.id.dlg_cancel);
    				final TextView confirm = (TextView) view.findViewById(R.id.dlg_confirm);
    
    				msg.setText(msgStr);
    				AlertDialog.Builder builder = new AlertDialog.Builder(context);
    				final AlertDialog dialog = builder.create();
    				dialog.setCancelable(false);
    				dialog.setCanceledOnTouchOutside(false);
    				dialog.show();
    
    				Window window = dialog.getWindow();
    				//设置显示位置
    				WindowManager.LayoutParams lp = window.getAttributes();
    				//不设置lp.width 和lp.height,对话框大小由布局决定
    //				lp.width = 525; //大小
    //				lp.height =330;
    
    				//自定义位置
    				lp.x = 30; 
    				lp.y = 30;
    				lp.gravity = Gravity.LEFT | Gravity.TOP;//不设置这个时,lp.x和lp.y无效
    				
    			    //window.setGravity(Gravity.CENTER);//居中显示
    				window.setAttributes(lp);
    				window.setContentView(view);
    
    
    				final Dialog dialog2 = dialog;
    				cancel.setOnClickListener(new View.OnClickListener() {
    					@Override
    					public void onClick(View v) {
    						try {
    							if(dialog2 != null){
    								dialog2.dismiss();
    							}
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					}
    				});
    				confirm.setOnClickListener(new View.OnClickListener() {
    					public void onClick(View arg0) {
    						try{
    							Toast.makeText(DownLoadActivity.this, "确认", Toast.LENGTH_SHORT).show();
    							if(dialog2 != null){
    								dialog2.dismiss();
    							}
    						} catch (Exception e) {
    							e.printStackTrace();
    						}
    					}
    				});
    			} catch (Exception e) {
    				e.printStackTrace();
    			}
    		}
    		
    lp.x的英文注释:		
    X position for this window. With the default gravity it is ignored. When using Gravity.LEFT or Gravity.START or Gravity.RIGHT or Gravity.END it provides an offset from the given edge
    由With the default gravity it is ignored可知,当使用对话框默认的Gravity时,lp.x和lp.y设置了也无效。		
    注意:lp.x与lp.y表示相对于原始位置的偏移.
              当参数值包含Gravity.LEFT时,对话框出现在左边,所以lp.x就表示相对左边的偏移,负值忽略.
              当参数值包含Gravity.RIGHT时,对话框出现在右边,所以lp.x就表示相对右边的偏移,负值忽略.
              当参数值包含Gravity.TOP时,对话框出现在上边,所以lp.y就表示相对上边的偏移,负值忽略.
              当参数值包含Gravity.BOTTOM时,对话框出现在下边,所以lp.y就表示相对下边的偏移,负值忽略.
              当参数值包含Gravity.CENTER_HORIZONTAL时,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动.
              当参数值包含Gravity.CENTER_VERTICAL时,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右移动,负值向左移动.
              gravity的默认值为Gravity.CENTER,即Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL.
              
            

    展开全文
  • 安卓自定义对话框(android.app.Dialog)


    /**
     * 2015-10-8上午11:13:09
     * wangzhongyuan
     */
    
    package com.shjc.jsbc.view2d.dialog;
    
    import android.app.Dialog;
    import android.content.Context;
    import android.view.View;
    
    import com.CL.CrazyRacing.game.R;
    
    
    /**
     * buySuccessDialog 购买成功提示,对话框, 调用buySuccessDialog.Instance(context).show()显示对话框
     * -----
     * 2015-10-8 上午11:13:09 
     * wangzhongyuan
     */
    public class buySuccessDialog extends Dialog
    {
    	/**
    	 * @param context
    	 * @param theme
    	 */
    	public buySuccessDialog(Context context)
    	{
    		super(context, R.style.popup);
    		setCanceledOnTouchOutside(false);
    		setCancelable(false);
    	}
    	
    	public static Dialog Instance(Context context)
    	{
    		// 创建对话框
    		final Dialog dialog = new buySuccessDialog(context);
    		
    		// 设置对话框自定显示内容
    		 dialog.setContentView(R.layout.dialog_lt_buy_success); // 从布局文件创建
    		
    		// 添加点击退出逻辑
    		View V = dialog.getWindow().getDecorView().findViewById(R.id.lt_buy_success);
    		View.OnClickListener listener = new View.OnClickListener()
    		{
    			@Override
    			public void onClick(View arg0)
    			{
    				dialog.dismiss();
    			}
    		};
    		V.setOnClickListener(listener);
    		
    		return dialog;
    	}
    }
    


    界面布局:res/layout/dialog_lt_buy_success.xml
    
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/lt_buy_success"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:background="@drawable/buy_success" />
    
    </RelativeLayout>
    
    对话框弹出样式:res/values/styles.xml
    
    <resources xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!-- <style name="mydialog" parent="@android:style/Theme.NoTitleBar.Fullscreen"> -->
        <style name="mydialog" parent="@android:style/Theme.Dialog">
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowIsFloating">false</item>
            <item name="android:windowBackground">@color/dialogbg</item>
    
            <!-- 背景透明 -->
        </style>
    
        <style name="fullscreen_dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowIsTranslucent">true</item>
     <!-- 半透明 -->
            <item name="android:windowBackground">@drawable/bg2px</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
        <style name="game" parent="@android:style/Theme.Dialog">
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowBackground">@drawable/dialog_touming</item>
            <item name="android:windowIsFloating">false</item>
        </style>
    
        <style name="popup" parent="@android:style/Theme.Dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowIsTranslucent">true</item>
            <item name="android:windowBackground">@drawable/dialog_touming</item>
            <item name="android:windowIsFloating">false</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
        <style name="result" parent="@android:style/Theme.Dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowIsTranslucent">false</item>
            <!-- 半透明 -->
            <item name="android:windowBackground">@drawable/bg2px</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
        <style name="loding" parent="@android:style/Theme.Dialog">
            <item name="android:windowFrame">@null</item>
            <item name="android:windowNoTitle">true</item>
            <item name="android:windowFullscreen">true</item>
            <item name="android:windowBackground">@drawable/lt_fengmian_5</item>
            <item name="android:windowIsFloating">true</item>
            <item name="android:windowContentOverlay">@null</item>
        </style>
    
        <style name="cooeethem" parent="@android:style/Theme.Translucent.NoTitleBar">
            <item name="android:windowBackground"> @android:color/transparent</item>
            <item name="android:windowIsTranslucent">false</item>
            <item name="android:windowAnimationStyle"> @android:style/Animation</item>
        </style>
    
    </resources>






    展开全文
  • 自定义View对话框 setView 自定义Dialog类 布局 dialog.xml 式样styles.xml 继承Dialog,构造方法、onCreate 值的传入和传出 2Nw==,size_16,color_FFFFFF,t_70) 2、Toast Toast是Android中用来显示信息得一种机制,...

    1、对话框重点总结:

    • AlertDialog
    • 普通提示对话框 setMessage
    • 单选对话框 setSingleChoiceltems
    • 多选对话框 setMultiChoiceltems
    • 自定义View对话框 setView
    • 自定义Dialog类
    • 布局 dialog.xml
    • 式样styles.xml
    • 继承Dialog,构造方法、onCreate
    • 值的传入和传出
    • 2Nw==,size_16,color_FFFFFF,t_70)

    2、Toast
    Toast是Android中用来显示信息得一种机制,和Dialog不一样得是Toast是没有焦点得,而且Toast显示得时间有限,过一定得时间就会自动消失
    (1)创建:
    //一个上下文对象Context,一个显示的消息来源,一个设置持续时间。
    static Toast makeText(Context context,int resld,int duration).
    static Toast make Text ( Context context , Charsequence text , int duration )
    (2)设置属性
    在这里插入图片描述
    3、Android res下得资源文件
    (1)为什么使用资源文件
    更好维护app升级开发等;节省代码维护量
    (2)资源文件有那些类型?
    文字,图片,音频视频,常量值、数组、布局文件等;(css图片)
    (3)如何建立资源文件?
    res文件下面建立资源文件
    在这里插入图片描述

    4、如何使用资源文件
    xml文件如何使用

    • @xxx/资源id:xxx代表资源类型
    • @color颜色
    • @string
    • @array
    • @drawable

    4.2java代码里如何使用

    • Resources res=getResources();
    展开全文
  • 自定义对话框 class MyDialog(context: Context) : Dialog(context) { init { setContentView(R.layout.dialog_layout) setCanceledOnTouchOutside(false) setAnimationsBottomUp() } private fun ...

    效果图

    关键代码

    1. 自定义对话框
    class MyDialog(context: Context) : Dialog(context) {
        init {
            setContentView(R.layout.dialog_layout)
            setCanceledOnTouchOutside(false)
            setAnimationsBottomUp()
        }
    
        private fun setAnimationsBottomUp() {
            window?.setWindowAnimations(R.style.dialogAnimBottomUp)
        }
    }
    
    1. 在styles.xml中添加如下内容:
    <style name="dialogAnimBottomUp" mce_bogus="1" parent="android:Animation">
        <item name="android:windowEnterAnimation">@anim/dialog_enter_anim</item>
        <item name="android:windowExitAnimation">@anim/dialog_exit_anim</item>
    </style>
    
    1. 在res下创建anim目录,并创建如下两个文件:
    1. dialog_exit_anim.xml
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="500"
            android:fromYDelta="0%p"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toYDelta="100%p" />
    </set>
    
    1. dialog_enter_anim.xml
    <?xml version="1.0" encoding="utf-8"?><!-- 弹出时动画 -->
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:duration="500"
            android:fromYDelta="100%p"
            android:interpolator="@android:anim/accelerate_interpolator"
            android:toYDelta="0%p" />
    </set>
    

    完整源代码

    https://gitee.com/cxyzy1/custom_dialog

    附录

    还有一种实现对话框动画显示的方式,就是通过控制整个视图来进行动画显示.

    简要代码:

    class BottomDialogWithAnim1(context: Context) : Dialog(context, R.style.common_dialog) {
        init {
            setContentView(R.layout.dialog_bottom_anim1)
            changeDialogStyle()
            showWithMoveAnim(rootLayout)
        }
    
        /**
         * 动画方式显示,从底部向上显示出来。
         * 如果其他想要其他方式,则修改里面的animation实现即可。
         */
        private fun showWithMoveAnim(srcView: View) {
            val animateTime = 300L
            val animation = TranslateAnimation(0f, 0f, getWindowHeight(context) - srcView.height.toFloat(), 0f)
            animation.fillAfter = true
            animation.duration = animateTime
            srcView.startAnimation(animation)
        }
    
        private fun getWindowHeight(context: Context): Int {
            val point = Point()
            val manager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
            val display = manager.defaultDisplay
            if (Build.VERSION.SDK_INT > 16) {
                display.getRealSize(point)
            } else {
                display.getSize(point)
            }
    
            return Point(point).y
        }
    
    
        /**
         * 设置dialog居下占满屏幕
         */
        private fun changeDialogStyle() {
            window?.let {
                val params = it.attributes
                if (params != null) {
                    params.height = ViewGroup.LayoutParams.WRAP_CONTENT
                    params.width = ViewGroup.LayoutParams.MATCH_PARENT
                    params.gravity = Gravity.BOTTOM
                    it.attributes = params
                }
            }
        }
    }
    

    完整源代码

    https://gitee.com/cxyzy1/custom_dialog

    展开全文
  • Android 开发中经常会碰到对话框的需求,总结一下我个人在工作中用到的一个dialog框架.经过大量的手机测试,其兼容性很好. 其中包含了一个核心类:
  • 今天心血来潮,想尝试弄一下自己的对话框,于是上网百度了一下,以下是原文出处 此处为原文 感谢作者,本文有所删改 ...首先,是自定义对话框布局文件activity_dialog.xml android:layout_w
  • * ,对话框水平居中,所以lp.x就表示在水平居中的位置移动lp.x像素,正值向右移动,负值向左移动. * 当参数值包含Gravity.CENTER_VERTICAL时 * ,对话框垂直居中,所以lp.y就表示在垂直居中的位置移动lp.y像素,正值向右...
  • //这里给对话框加入了自定义的内容 </pre><pre name="code" class="java">最后:在对话框本身的按键确定或者取消click响应中加入: ((ViewGroup) saveForm.getParent()).removeView(def);
  • android 自定义对话框.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • dialogfragment自定义对话框使用实例.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 自定义对话框,工具类,简单好用,UI自定义,代码简洁.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 如果安卓自带的对话框不能满足你的需求,而你又迫切需要一个炫酷(哈哈,夸张一下,就是可以加缩放,平移等动画)的自定义对话框,可以看看这篇博客,大神可以绕过。。先上图对话框布局代码dialog_test.xml&lt;?...
  • 现在要说的是自定义对话框。常用的对话框有好多网友们整理的资料,对话框大全啊神马的。但是除了常用对话框外,有时候要根据自己的需求定义新的对话框,下面就稍微说一下自定义对话框的一种做法。1、需要一个对话框...
  • 后面就用对话框来实现了,接下来讲一下如何实现自定义对话框自定义对话框的弹出位置。 在查资料的时候发现有两种形式的对话框一个是Dialog,一个是AlertDialog,后者不能设置标题,前者默认有标题/* 创建AlertDia
  • 多种对话框+获取列表位置值+自定义对话框 ; 列表信息Dialog,对焦点进行特殊处理,所以就需要自定义Dialog
  • 安卓自定义对话框实现
  • 自定义了个布局作为对话框 然后点击按钮获取输入框内容 然后应用闪退了 findview返回null 求解![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/9.gif)
  • 安卓实现底部弹出框/自定义对话框

    千次下载 热门讨论 2014-10-24 22:50:38
    安卓实现底部弹出框/自定义对话框,详细介绍见博文
  • android自定义对话框

    2019-10-01 20:20:40
    android自定义对话框 2015-04-0218:27:02 有的时候安卓内置的对话框不能满足我们的需要,或许是功能不齐全亦或者不符合我们的界面设计要求,这个时候我们就需要弄一个我们自己设置的对话框了,下面我将为大家讲一...
  • 自定义对话框是使用对话框的一种高级形式,下面我们来介绍一下它的使用方式。 整体思路:首先定义一个custom_dialog.xml文件,在这个文件中放置几个控件,作为自定义的对话框的界面,创建一个CustomDialog类,在这个...
  • Android中自定义对话框

    2015-11-12 19:35:26
    安卓自定义对话框的实现: 一:首先定义一个自己的对话框样式xxx.xml文件; 示例代码: android:layout_width="match_parent" android:layout_height="wrap_con
  • 自定义对话框

    2016-08-16 15:17:01
    在学着写安卓程序的登录验证的时候,学着知乎等一大票软件用自定义对话框进行登录验证。 在试着写的时候,也废了一些功夫去翻阅网上各种资料,有很多都是直接把自己的代码丢在博客上,这里说一下自己学习之后的...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 216
精华内容 86
关键字:

安卓自定义对话框