通用的Dialog自定义dialog
图样:
aaarticlea/png;base64,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" alt="" />aaarticlea/png;base64,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" alt="" />
1.自定义dialog的用法
YouMengDialog userMsgDialog=null;
private void initTipDialog() {
userMsgDialog = new YouMengDialog (this);
userMsgDialog.setTitle("系统提示!");
userMsgDialog.setMessage("提示的内容!");
userMsgDialog.setCanceledOnTouchOutside(false);
userMsgDialog.setButton1("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
userMsgDialog.dismiss();
}
});
userMsgDialog.setButton2("确定", new View.OnClickListener() {
@Override
public void onClick(View v) {
userMsgDialog.dismiss();
}
});
userMsgDialog.show();
}
2.dialog的java代码
public class YouMengDialog extends Dialog {
private View contentView;
public YouMengDialog(Context context){
super(context, R.style.tran_AlertDialog);
LayoutInflater inflater = LayoutInflater.from(context);
this.contentView = inflater.inflate(R.layout.dialog, null);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(contentView);
Window window = this.getWindow();
WindowManager.LayoutParams lp = window.getAttributes();
Display d = window.getWindowManager().getDefaultDisplay();
lp.width = (int) (d.getWidth() * 0.9F);
window.setAttributes(lp);
}
//设置提示框标题
public void setTitle(String title){
final TextView textView = (TextView) contentView.findViewById(R.id.title);
textView.setText(title);
}
//设置提示的内容
public void setMessage(String message){
final TextView textView = (TextView) contentView.findViewById(R.id.message);
textView.setText(message);
}
//对提示框的第一个按键(取消按钮)设置,title:按钮上的文字,onclicklistener :触发的事件
public void setButton(String title,View.OnClickListener onClickListener){
final Button button = (Button) contentView.findViewById(R.id.dialogButton);
button.setText(title);
button.setOnClickListener(onClickListener);
}
//当只需要一个确定键的时候让取消键隐藏
public void setButtonGone(){
Button button = (Button) contentView.findViewById(R.id.dialogButton);
button.setVisibility(View.GONE);
}
//对提示框的第二个按键(确定按钮)设置,title:按钮上的文字,onclicklistener :触发的事件
public void setButton2(String title,View.OnClickListener onClickListener){
final Button button = (Button) contentView.findViewById(R.id.dialogButton2);
button.setText(title);
button.setOnClickListener(onClickListener);
}
}
3.用到的样式表
<style name="tran_AlertDialog" parent="@android:style/Theme.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">@drawable/gray_corners_border</item>
<!-- 自己想要的背景 -->
<item name="android:backgroundDimEnabled">true</item>
<!-- 模糊 -->
</style>
4.dialog的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@drawable/gray_bottom_border"
android:padding="10dp"
android:gravity="center_vertical">
<ImageView
android:src="@drawable/jinggao"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="25dp"
android:maxHeight="25dp"
android:scaleType="fitCenter"
android:layout_marginRight="8dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提示信息"
android:id="@+id/title"
android:textColor="@color/black"
android:textSize="@dimen/txt_20"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提示信息"
android:id="@+id/message"
android:textColor="@color/black"
android:textSize="@dimen/txt_20"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:padding="10dp"
android:gravity="center">
<Button
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="取消"
android:background="@drawable/gray_corners_button"
android:id="@+id/dialogButton"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp" android:textSize="@dimen/txt_20"
android:layout_weight="1"/>
<Button
android:layout_width="wrap_content"
android:layout_height="40dp"
android:text="确认"
android:background="@drawable/green_corners_button"
android:id="@+id/dialogButton2"
android:textSize="@dimen/txt_20"
android:textColor="@color/white"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_weight="1" />
</LinearLayout></LinearLayout>
通用的Dialog自定义dialog的更多相关文章
- Animate a custom Dialog,自定义Dialog动画
Inside res/style.xml <style name="AppTheme" parent="android:Theme.Light" /> ...
- CustomDialog——一个多功能、通用、可自定义的Dialog
CustomDialog--一个多功能.通用.可自定义的Dialog 依赖 compile 'com.github.SiberiaDante:CustomDialog:v1.0.1' 说明[Cus ...
- C/C++ Qt 自定义Dialog对话框组件应用
在上一篇博文 <C/C++ Qt 标准Dialog对话框组件应用> 中我给大家演示了如何使用Qt中内置的标准对话框组件实现基本的数据输入功能. 但有时候我们需要一次性修改多个数据,使用默认 ...
- Android—自定义Dialog
在 Android 日常的开发中,Dialog 使用是比较广泛的.无论是提示一个提示语,还是确认信息,还是有一定交互的(弹出验证码,输入账号密码登录等等)对话框. 而我们去看一下原生的对话框,虽然随着 ...
- Android自定义Dialog(美化界面)
前言:在做项目的时候,发现dialog界面太丑陋,从csdn上下载了一份自定义dialog的源码,在他的基础上对界面进行美化...有需要的朋友可以直接拿走 效果图如下: 主要代码: /** * 自定义 ...
- Android自定义Dialog及其布局
实际项目开发中默认的Dialog样式无法满足需求,需要自定义Dialog及其布局,并响应布局中控件的事件. 上效果图: 自定义Dialog,LogoutDialog: 要将自定义布局传入构造函数中, ...
- 自定义Dialog宽度占满屏幕
一.自定义Dialog继承Dialog public class MyDialog extends Dialog { 二.为Dialog设置样式 在style中建立新样式继承 @android:sty ...
- 关于实现自定义Dialog和实现Dialog里view的事件监听的两种方法
一.自定义dialog. 二.实现dialog里view的事件监听 1.自定义dialog比较简单.在实例化new的时候,加入样式,布局就行了.或者重写dialog. 2.实现dialog里view的 ...
- 自定义Dialog之信息提示
对话框对于应用也是必不可少的一个组件,在Android中也不例外,对话框对于一些提示重要信息,或者一些需要用户额外交互的一些内容很有帮助. 自定义Dialog步骤: 1.主要创建Java类,并继承Di ...
随机推荐
- Util应用程序框架公共操作类(十一):表达式生成器
本篇介绍的表达式生成器,用于动态创建表达式. 在Util项目Lambdas目录中,添加ExpressionBuilder,代码如下. using System; using System.Linq.E ...
- MySQL分区表的管理~2
一.维护分区 对于表的维护,我们一般有如下几种方式: CHECK TABLE, OPTIMIZE TABLE, ANALYZE TABLE和REPAIR TABLE. 而这几种方式,对于分区同样适用. ...
- 学习Linux下s3c2440的USB鼠标驱动笔记
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)********************************** ...
- DotNet处理服务器路径的方法
项目中需要使用到路径处理的地方比较多,对于路径的解析和匹配有时较为繁琐,现在提供一个对路径进行解析的方法: 1.验证设置路径字符串: /// <summary> /// 验证设置路径字符串 ...
- Kooboo CMS - 之后台注册用户流程方法。
今天决定写一篇好一点的文章,吼吼!首先我们必须找到这个文件,这个文件是UsersController.cs,我们找到和添加新用户有关的方法,如下代码: public virtual ActionRes ...
- 做图表统计你需要掌握SQL Server 行转列和列转行
说在前面 做一个数据统计和分析的项目,每天面对着各种数据,经过存储过程从源表计算汇总后需要写入中间结果表以提高数据使用效率,那么此时就需要用到行转列和列转行. 1.列转行 数据经过计算加工后会直接生成 ...
- jsonp协议原理深度解析
前言 今天在开发联调的过程中,需要跨域的获取数据,因为使用的jquery,当然使用dataType:'jsonp'就能够很easy的解决了.但是因为当时后端没有支持jsonp来访问,后来他在实现这个功 ...
- C#中实现excel文件批量导入access数据表中
一 .界面简单设计如下: 二 .代码如下: using System; using System.Collections.Generic; using System.ComponentModel; u ...
- 第一个hadoop 程序
首先检查hadoop是否安装并配置正确然后建立WordCount.java文件里面保存package org.myorg; import java.io.IOException;import java ...
- 又一个半成品库 weblog rpc client
我基本上属于半成品专业户,去看我的github就知道. 下午又撸了一个weblog rpc client库,而这又一次证明了一个有技术但没有产品能力的程序员是没有卵用的. 因为当做好了库的雏形,但与具 ...