android  继承dialog自定义对话框

样式如下:

代码实现:

主要Activity:

public class MainActivity extends Activity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button)findViewById(R.id.show_dialog);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
new MyDialog(MainActivity.this,R.style.my_dialog_theme).show();
}
});
}
}

注意:要为定义的dialog设置theme,否则显示的dialog外边有白色边框:

theme的定义如下:

打开stytle.xml文件(values目录下),加入如下代码:

<style name="my_dialog_theme" parent="@android:Theme.Dialog">
         <item name="android:windowFrame">@null</item>
        <item name="android:windowNoTitle">true</item> 
        <item name="android:windowBackground">@drawable/dialog_bg</item>    //这句话不能少,否则dialog会出现黑色边框
        <item name="android:windowIsFloating">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>

主要布局文件:

<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="match_parent"
    tools:context=".MainActivity" >

<Button android:id="@+id/show_dialog"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="showDialog" />

</RelativeLayout>

自定义dialog代码:

public class MyDialog extends Dialog{
public Button button_yes;
public Button button_no;
public MyDialog(Context context) {
super(context);
}

public MyDialog(Context context, int theme) {
super(context, theme);

}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dialog);

button_yes = (Button)findViewById(R.id.button_yes);
button_no = (Button)findViewById(R.id.button_no);

addButtonYesListener();
addButtonNoListener();
}

public void addButtonYesListener(){
button_yes.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyDialog.this.dismiss();
}
});
}

public void addButtonNoListener(){
button_no.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
MyDialog.this.dismiss();
}
});
}
}

dialog布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:orientation="vertical"
    tools:context=".MainActivity" >

<LinearLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center">

<TextView android:layout_width="wrap_content"
            android:layout_height="wrap_content"
           android:layout_marginTop="15dp"
           android:layout_marginBottom="5dp"
            android:text="这是一个自定义对话框"
            android:textColor="#FF3271"/>
    </LinearLayout>

<View android:layout_width="300dp"
        android:layout_height="2dp"
        android:background="@drawable/dialog_line"/>
    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp">
        
        <Button android:id="@+id/button_yes"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="确定"
            android:background="@drawable/button_click_sector"
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dp"/>        
        <Button android:id="@+id/button_no"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="取消"
            android:background="@drawable/button_click_sector"
            android:layout_alignParentRight="true"
            android:layout_marginRight="10dp"/>
    </RelativeLayout>  
</LinearLayout>

用到的图片资源:

  

demo下载地址:

android 继承dialog自定义对话框相关推荐

  1. 如何在android中创建自定义对话框?

    本文翻译自:How to create a Custom Dialog box in android? I want to create a custom dialog box like below ...

  2. Android笔记之自定义对话框

    效果如下图 对话框布局 dialog_uninstallation_confirmation.xml <?xml version="1.0" encoding="u ...

  3. android倒计时dialog,自定义带倒计时的Dialog

    1.[文件] CustomDiaglog.rar ~ 56KB     下载(206) 2.[图片] 豌豆荚截图20121103224745.png 3.[代码]Dialog核心代码 package ...

  4. android 之Dialog的多种Dialog对话框(以及反射在自定义对话框的运用)

    实际效果: 实例代码: 一个"启动初始Activity.xml" 一个弹出的Activity 业务逻辑代码: package com.hsj.example.alertdialog ...

  5. android 获取对话框对象,Android 基本Dialog和自定义Dialog

    Android 基本Dialog和自定义Dialog Dialog类是对话框的基类,但你应该避免直接实例化Dialog ,可以使用子类 1.AlertDialog 此对话框可以显示标题,最多三个按钮, ...

  6. android dialog 自定义布局,Android自定义Dialog实现加载对话框效果

    前言 最近开发中用到许多对话框,之前都是在外面的代码中创建AlertDialog并设置自定义布局实现常见的对话框,诸如更新提示等含有取消和删除两个按钮的对话框我们可以通过代码创建一个AlertDial ...

  7. android 中Dialog对话框及自定义Dialog的方法

    // 重写方法,让他返回Dialog.// 以下是优化代码的替换,只创建一次,每次点击使用showDialog()的方法,不用每次都创建新的,可以减少内存使用@Overrideprotected Di ...

  8. Android自定义对话框(Dialog)位置,大小

    代码: package angel.devil; import android.app.Activity;import android.app.Dialog;import android.os.Bun ...

  9. 浅谈android中的自定义封装易用的Dialog

    转载地址:http://blog.csdn.net/u013064109/article/details/51990526 好久没写Android的博客,最近在做一个android的项目,里面用到我们 ...

最新文章

  1. 「网络流24题」 12. 软件补丁问题
  2. vue3.x案例 购物车
  3. 在Panel上绘图的实现
  4. INF DestinationDirs Section
  5. python迷宫算法及实现_Python迷宫递归算法
  6. 转:Linux设备驱动开发(1):内核基础概念
  7. Github 下载单个文件
  8. 杭电oj-----Farm Irrigation(BFS)
  9. ubuntu 下codeblocks的相关配置
  10. Java中JSON的解析方式
  11. ES6笔记上(深入浅出ES6—阮一峰)
  12. java服务安装(三):使用appassembler
  13. python与图像处理书籍_数字图像处理与Python实现
  14. vim-plug插件安装
  15. python函数中的变量取出来_在Python中从函数调用中提取变量
  16. PostgreSQL基础(概念篇)
  17. 软件设计师:软件工程
  18. “妖精”团队———阿里巴巴
  19. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第九讲:块元素、行内元素、标准流、盒子模型
  20. 华为手机关闭蓝牙开发搜索_大众速腾手机无法搜索车载蓝牙系统维修实例

热门文章

  1. Matplotlib Tutorial(译)
  2. Stanford UFLDL教程 数据预处理
  3. Stanford UFLDL教程 自编码算法与稀疏性
  4. 《大话数据结构》第9章 排序 9.9 快速排序(下)
  5. JAVA CXF、XFIRE、AXIS webservice获取客户端IP
  6. vCenter的安装与部署
  7. linux Makefile编写的整理
  8. python使用pyodbc,freetds连接azure数据库
  9. 虚拟化:企业信息化建设中坚力量
  10. 全国公共英语五级(PETS-5) 写作作文