刚刚写了一个自定义 dialog demo 也是网上查询了一下 保留记录

1.先把dialog格式设置好   透明的没有边框      这样相当于得到一个空白的画板   想怎么添加布局就怎么添加布局  想怎么写就怎么写   所以就是自定义的了

转载请标注转载http://blog.csdn.net/oqihaogongyuan/article/details/50958659

自定义Dialog的详细步骤(实现自定义样式一般原理)

现在很多App的提示对话框都非常有个性,然而你还用系统的对话框样式,是不是觉得很落后呢,今天我就给大家讲讲怎样自定义自己的Dialog,学会了之后,你就会根据自家app的主题,设计出相应的Dialog的风格。

好了接下来我就以一个简单风格的自定义Dialog来讲讲自定义dialog的一般步骤和原理。

第一步: 给Dialog设置一个风格主题(基本都是用这个主题)无边框全透明背景:

<!--自定义dialog背景全透明无边框theme -->
    <style name="MyDialog" parent="android:style/Theme.Dialog">
        <!--背景颜色及和透明程度-->
        <item name="android:windowBackground">@android:color/transparent</item>
        <!--是否去除标题 -->
        <item name="android:windowNoTitle">true</item>
        <!--是否去除边框-->
        <item name="android:windowFrame">@null</item>
        <!--是否浮现在activity之上-->
        <item name="android:windowIsFloating">true</item>
        <!--是否模糊-->
        <item name="android:backgroundDimEnabled">false</item>
    </style>

2.自己定义layout  加载到自定义的MyselfDialog中  定义为自己需要的界面 主要是自定义一些按钮的点击事件 滑动事件 单选对话框等 需要通过接口调用方法 (所以自定义的类中 需要自己定义接口  到对应的点击事件中实现接口中的方法   在activity 中重写接口的方法)
public class MyselfDialog extends Dialog {

private TextView textView;    private Button btConfirm;    private Button btCancel;    private TextView titile;

public MyselfDialog(Context context) {        super(context, R.style.MyDialog);    }

private onYesClickInterface onYesClickInterface;    private onNoClickInterface onNoClickInterface;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialig_myself);        titile = (TextView) findViewById(R.id.textview_title);        textView = (TextView) findViewById(R.id.textview);        btConfirm = (Button) findViewById(R.id.confirm);        btCancel = (Button) findViewById(R.id.cancel);        btConfirm.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (onYesClickInterface != null){                    onYesClickInterface.setYesClick();                }            }        });        btCancel.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (onNoClickInterface != null){                    onNoClickInterface.setNoClick();                }            }        });    }

public void setOnYesClickInterface(onYesClickInterface onYesClickInterface){        if (onYesClickInterface != null){            this.onYesClickInterface = onYesClickInterface;        }    }

public void setOnNoClickInterface(onNoClickInterface onNoClickInterface){        if (onNoClickInterface != null){            this.onNoClickInterface = onNoClickInterface;        }    }

public void setTitle(String title){        this.titile.setText(title);    }

public void setMessage(String msg){        this.textView.setText(msg);    }

public interface onYesClickInterface{        public void setYesClick();    }    public interface onNoClickInterface{        public void setNoClick();    }

}
3. Activity界面代码   重写接口方法   实现对话框功能
public class DialogActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_myselfdialog);        Button bt = (Button) findViewById(R.id.show_dialog);        bt.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                MyselfDialog myselfDialog = new MyselfDialog(getBaseContext());                myselfDialog.setTitle("1111111111111111111111111111111");                myselfDialog.setMessage("22222222222222222222222222222222222");                myselfDialog.setOnYesClickInterface(new MyselfDialog.onYesClickInterface() {                    @Override                    public void setYesClick() {                        Toast.makeText(getBaseContext(),"点击确定按钮",Toast.LENGTH_SHORT).show();                    }                });                myselfDialog.setOnNoClickInterface(new MyselfDialog.onNoClickInterface() {                    @Override                    public void setNoClick() {                        Toast.makeText(getBaseContext(),"点击取消按钮",Toast.LENGTH_SHORT).show();                    }                });                myselfDialog.show();            }        });

}}
				
时间: 2025-01-11 23:21:31

刚刚写了一个自定义 dialog demo 也是网上查询了一下 保留记录的相关文章

使用TestStand默认ProcessModel--SequentialModel,快速搭建一个自定义过程模型Demo

TestStand 版本:2012 SP1 实现的的目标效果,如下图:使用TestStand默认ProcessModel--SequentialModel,快速搭建一个自定义过程模型Demo 步骤一: .准备工作 将TestStand ProcessModel 设置成--SequentialModel 设置Result Processing,这边启用Report记录  步骤二:  添加Model Callback 右击Sequence区域,选择Sequence File Callbacks,在出

[android]我是这样写自定义Dialog的

1.前言 #####然而就先特么扯个犊子-##### * 其实,关于android的自定义dialog网络上很多文章.我也不知道我这篇会不会特别点~ 小渣渣我只想写点个人感觉有意义的东西. (其实也是不知道写啥啦,欢迎大家有想了解的知识点.或者想法可以私信或 者留言给本渣~ 个人感觉有意义的有兴趣的就写出来~hhhhhh ) 不扯犊子了-感觉扯犊子会被打- 2.概述 百度上各种自定义对话框很多,可是感觉都好乱呀呀呀呀.之前写自定义对话框的代码总是巴拉到一团,卧槽--看着就烦,改起来更烦-对于近视

Android自定义dialog中的EditText无法弹出键盘的解决

最近我独立开发的项目<全医会>已经在内测当中了,很快将会上架到各大应用市场.之前开发的几个项目都因为一些原因没有上架还是比较遗憾的.所以,最近我心情格外的好. 今天在做一个新项目,专为律师和客户开发的APP,其中有一个自定义对话框的需求.这个知识点其实很简单,就是下图这个效果: 可是当我悠闲的写完以后才发现,自定义对话框里面嵌套的EditText根本无法获取焦点,无法弹出软键盘,郁闷,以前开发的软件里面没有EditText的时候一切正常,没有发现这个隐藏的坑.下图是我之前写的一个自定义对话框:

android如何写一个自定义的dialog可以在Title的位置弹出来

先上效果图: Title的Layout为: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/title_h

用avalon写的一个弹窗demo

之前项目中,用avalon写的一个模块,单独拿出来了,一个小弹窗的效果. demo地址: http://www.hui12.com/nbin/demo/4a/4a.html html: <div class="people-pop-shade" ms-controller="vmPeoplePop" ms-visible="toggleShade"> <div class="people-pop-box" m

写一个自定义进度颜色和圆形转动的ProgressBar(详细介绍)

先上图: 我们得自定义ProgressBar的样式 <span style="white-space:pre"> </span><style name="self_define_ProgressBar" parent="@android:style/Widget.ProgressBar.Horizontal"> //继承了android横向的ProgressBar的样式 <item name="

【demo】自己写的一个 SpringMail 异步发送邮件的demo。 javamail 邮件异步发送

原文:[demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 源代码下载地址:http://www.zuidaima.com/share/1550463483120640.htm [demo]自己写的一个 SpringMail 异步发送邮件的demo. javamail 邮件异步发送 (注意 配置里面的账号跟发件人账号要一致) 1. 请各位在跑单元测试的时候,在 spring-mail.xml 文件中配置自己的邮箱账号和密码 (我已经注释掉了)

不会写重试,自定义了一个重试

不会写重试,我用了这么个方法来 作为重试机制:    def web(self):        time.sleep(5)        i = 0        a = self.br.current_url        print a        while i < 10:            self.br.back()            if self.br.current_url == a:                i+=1            else:     

如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server

我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer>),为了让读者朋友们对管道中的Server具有更加深刻的认识,接下来我们采用实例演示的形式创建一个自定义的Server.这个自定义的Server直接利用HttpListener来完成针对请求的监听.接收和响应,我们将其命名为HttpListenerServer.在正式介绍HttpListenerServ