实际项目开发中默认的Dialog无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件。

上效果图:

自定义Dialog,LogoutDialog:

要将自定义布局传入构造函数中,才能在Activity中通过 dialog.findviewbyid 获取到控件,否则返回null。

public class LogoutDialog extends Dialog{

Context context;

public LogoutDialog(Context context) {

super(context);

this.context=context;

this.setContentView(R.layout.logout_dialog);

}

public LogoutDialog(Context context, int theme){

super(context, theme);

this.context = context;

this.setContentView(R.layout.logout_dialog);

}

[email protected]

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//this.setContentView(R.layout.logout_dialog);

}

}

自定义布局文件,logout_dialog.xml:

android:layout_width="250dp"

android:layout_height="wrap_content"

android:orientation="vertical"

android:background="@android:color/transparent"

>

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/dialog_top_bg"

android:orientation="vertical"

android:paddingTop="10dp"

>

android:layout_width="50dp"

android:layout_height="50dp"

android:src="@drawable/pop_icon1"

android:layout_gravity="center_horizontal"

android:layout_marginBottom="10dp"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="是否确认注销账号"

android:layout_gravity="center_horizontal"

android:layout_marginBottom="20dp"

android:textColor="#FF3C25"

android:layout_marginLeft="20dp"

android:layout_marginRight="20dp"

/>

android:layout_width="match_parent"

android:layout_height="40dp"

android:gravity="center_vertical"

android:background="@drawable/dialog_buttom_bg"

>

android:id="@+id/back_btn_dialog"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:text="返回"

android:layout_weight="1"

android:textColor="#FFFFFF"

android:gravity="center"

/>

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:text="|"

android:textColor="#C9CACC"

android:gravity="center"

/>

android:id="@+id/submit_btn_dialog"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:text="确定"

android:layout_weight="1"

android:textColor="#FFFFFF"

android:gravity="center"

/>

两个Shape的布局,dialog_buttom_bg.xml:

>

android:bottomLeftRadius="@dimen/dialog_corners"

android:bottomRightRadius="@dimen/dialog_corners"

/>

android:startColor="#FF3E25"

android:endColor="#FF3E25"

android:centerColor="#FF3E25"

android:angle="270"

/>

dialog_top_bg.xml:

android:topLeftRadius="@dimen/dialog_corners"

android:topRightRadius="@dimen/dialog_corners"

/>

android:startColor="#ffffff"

android:endColor="#ffffff"

android:centerColor="#ffffff"

android:angle="270"

/>

自定义样式Style,来改变默认的Dialog样式。在values/styles.xml下新加样式:

@null

true

@drawable/dialog_background

true

@null

在Activity中调用:

Dialog dialog==new LogoutDialog(TempActivity.this, R.style.UpdateErrorFinishDialog);

dialog.setCanceledOnTouchOutside(false);

dialog.show();

TextView submit_btn_dialog=(TextView) dialog.findViewById(R.id.submit_btn_dialog);

TextView back_btn_dialog=(TextView) dialog.findViewById(R.id.back_btn_dialog);

submit_btn_dialog.setOnClickListener(new View.OnClickListener() {

[email protected]

public void onClick(View v) {

//Toaster.showLongToast("确定");

dialog.dismiss();

}

});

back_btn_dialog.setOnClickListener(new View.OnClickListener() {

[email protected]

public void onClick(View v) {

//Toaster.showLongToast("返回");

dialog.dismiss();

}

});

原文:http://www.cnblogs.com/Joanna-Yan/p/4438725.html

android自定义dialog布局文件,Android自定义Dialog及其布局相关推荐

  1. Android笔记——在布局文件中插入另一个布局文件

    假如有一个布局文件A.xml想把另外一个布局文件B.xml引进其布局,则可以通过下面的代码 <include layout="@layout/B" /> 程序猿必读 转 ...

  2. android 竖屏资源文件,Android不同分辨率屏幕下自适应资源文件

    1.不同的layout Android手机屏幕大小不一,有480x320,640x360,800x480.怎样才能让App自动适应不同的屏幕呢? 其实很简单,只需要在res目录下创建不同的layout ...

  3. android自定义视图添加布局文件,android – 添加自定义视图作为XML布局的视图

    方案如下: 我有一个活动RunTrainingWorkoutsView,它使用XML布局_run_workout.xml_,其中一些标签由CountDownTimer更新.工作正常- 现在,除了每秒通 ...

  4. android使用系统字体文件,Android 自定义字体,更换系统默认显示的字体使用自定义字体...

    序言: 1.指定控件显示指定字体 有时为了美化UI,需要在指定控件中显示特定的字体,而这个字体在Android系统中却没有,此时可将需要的字体文件存放在assets文件夹中,在为控件设置Typefac ...

  5. Android平板app开发布局文件,Android平板开发相关

    关于系统的资源配置的目录(我只列出一些大概,默认项目会有一些资源配置目录) Android系统支持多配置资源文件,我们可以追加新的资源目录到你的Android项目中.命名规范: 资源名字-限制符 la ...

  6. android创建布局文件,android学习——Android Studio下创建menu布局文件

    一.问题: android studio项目中没有看到menu文件夹: 在android studio项目中想要添加menu布局文件,一开始我的做法是:直接在res文件夹右键选择xml文件来添加,如下 ...

  7. android 7.0拷贝文件,Android 7.0应用间共享文件----FileProvider

    应用间经常需要将自己的私有文件共享给其他的app,如某应用想要共享图库的图片用来编辑用户的头像,或者文件管理app允许用户在不同目录下复制粘贴文件等等,但为了保护私有文件的安全性,在targetSdk ...

  8. Android实现打开本地文件,Android 打开本地文件(示例代码)

    Android 打开本地的文件,目前来说,其实很常见.而且现在有手机版的office了.查看office的全家桶就更加方便. 首先要知道的是,Android 打开本地文件是根据类型打开的,也就是根据文 ...

  9. android程序内下载文件,android文件下载代码 android程序 里如何编写下载代码

    android开发文件下载在手机报错 package cc.download; import android.app.Activity;import android.os我比任何人都懂你不会真的陪我到 ...

最新文章

  1. Magento开发的特点有哪些?
  2. DataTables 表格固定栏使用方法
  3. 原生JS动态计算输入框文本内容的宽度,当内容宽度超过输入框的宽度时可控
  4. 服务器网站显示多协议,解决高防IIS8服务器https协议多个同时访问的解决方法
  5. MySQL笔记-InnoDB中Record Lock与Gap Lock
  6. 例子---JS无缝轮播图
  7. win7系统office向程序发送命令时出现错误
  8. 比尔·盖茨的11条人生箴言
  9. Windows10系统删除文件夹“找不到该项目”强删方法
  10. TP6多应用部署简单的个人总结--第一篇【原创】
  11. 塑形管理小程序开发(二)-原型图绘制
  12. 惠普服务器文档,惠普服务器详细整理参数
  13. MallBook分账系统收费标准是什么呢?
  14. AppsFlyer的测试
  15. python locust api_性能测试工具--Locust官方文档(API)解读(全)
  16. PHP 输出图像 imagegif 、imagejpeg 与 imagepng 函数(五)
  17. hadoop实战(二)
  18. 4K、2K、1080P、720P是什么? 4K电视机、拍照手机、录像机等设备的分辨率又是多少?
  19. Android 真机调试
  20. 一个精明主妇写的省钱过日子的好贴!

热门文章

  1. 以太网OAM三兄弟-EFM、CFM和Y.1731
  2. 卡车玻璃后的人脸图像增强项目(框取|限制直方图|超分辨率重建)
  3. Python开发环境安装及配置
  4. PowerBI-日期和时间函数-TODAY\NOW
  5. 遇见未来-北京AR/MR线下技术交流邀请您(已过期)
  6. 2015百度测试开发岗笔试面试总结
  7. Flask简单调用Redis、MySQL和生成token及token验证
  8. c语言安装vs该选哪些,C/C++编译器教程之如何安装vs,看了的人应该都会装,只要不手残...
  9. gRPC和HTTP区别
  10. ios 微信h5支付取消或完成支付时不能返回原APP