普通的确认对话框


NormalDialog.java
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class NormalDialog  extends Dialog implements android.view.View.OnClickListener{
    private  TextView tv_explain;
    private  TextView tv_ok;
    private  TextView tv_normal_title;
    private  TextView tv_sub_title;
    private  ImageView iv_cancel;
    public NormalDialog(Context context) {
        super(context,R.style.DialogTheme);
        initView();
    }
    public NormalDialog(Context context, int theme) {
        super(context, theme);
        initView();
    }
    private void initView() {
        setContentView(R.layout.dialog_normal);
        iv_cancel=(ImageView) findViewById(R.id.iv_cancel);
        iv_cancel.setOnClickListener(this);
        tv_explain=(TextView) findViewById(R.id.tv_explain);
        tv_ok=(TextView) findViewById(R.id.tv_ok);
        tv_normal_title=(TextView) findViewById(R.id.tv_normal_title);
        tv_sub_title= (TextView) findViewById(R.id.tv_sub_title);
        tv_ok.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.iv_cancel:
            dismiss();
            onCancleClick(v);
            break;
        case R.id.tv_ok:
            dismiss();
            onSureClick(v);
            break;
        default:
            break;
        }
    }
    public TextView getExpalinTextView() {
        return tv_explain;
    }
    public TextView getTitleView() {
        return tv_normal_title;
    }
    public TextView getTvOk(){
        return tv_ok;
    }
    public TextView getsubTitleTextView() {
        return tv_sub_title;
    }
    public void onSureClick(View v) {
    }
    public void onCancleClick(View v) {
    }

}


确定取消对话框


dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="264dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:padding="28dp" >
    <TextView
        android:id="@+id/tv_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:gravity="center"
        android:text="温馨提示"
        android:textColor="#666666"
        android:textSize="17sp" />
    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_title"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="26dp"
        android:gravity="center"
        android:text="你确定要进入"
        android:textColor="#a8a8a8"
        android:textSize="15sp" />
    <TextView
        android:id="@+id/tv_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="6dp"
        android:gravity="center"
        android:text="喜洋洋和灰太狼"
        android:textColor="#e472a3"
        android:textSize="15sp" />
    <TextView
        android:id="@+id/tv_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="6dp"
        android:gravity="center"
        android:text="的直播间吗?"
        android:textColor="#a8a8a8"
        android:textSize="15sp" />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/tv_2"
        android:layout_marginTop="26dp" >
        <View
            android:id="@+id/v_center"
            android:layout_width="1px"
            android:layout_height="10dp"
            android:layout_centerHorizontal="true"
            android:background="#00000000" />
        <TextView
            android:id="@+id/tv_cancle"
            android:layout_width="80dp"
            android:layout_height="36dp"
            android:layout_alignParentLeft="true"
            android:background="@drawable/tv_cancle_color_bg"
            android:gravity="center"
            android:text="取消"
            android:textColor="@drawable/tv_cancle_color_text"
            android:textSize="15sp" />
        <TextView
            android:id="@+id/tv_sure"
            android:layout_width="80dp"
            android:layout_height="36dp"
            android:layout_alignParentRight="true"
            android:background="@drawable/tv_sure_color_bg"
            android:gravity="center"
            android:text="进入"
            android:textColor="@drawable/tv_sure_color_text"
            android:textSize="15sp" />
    </RelativeLayout>

</RelativeLayout>


MyDialog.java
import android.app.Dialog;
import android.content.Context;
import android.view.View;
import android.widget.TextView;
public class MyDialog extends Dialog implements android.view.View.OnClickListener {
    private TextView tv_sure;
    private TextView tv_cancle;
    private TextView tv_content;
    public MyDialog(Context context) {
        super(context, R.style.DialogTheme);
        initView();
    }
    public MyDialog(Context context, int theme) {
        super(context, theme);
        initView();
    }
    private void initView() {
        setContentView(R.layout.dialog);
        tv_sure = (TextView) findViewById(R.id.tv_sure);
        tv_cancle = (TextView) findViewById(R.id.tv_cancle);
        tv_content = (TextView) findViewById(R.id.tv_content);
        tv_sure.setOnClickListener(this);
        tv_cancle.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.tv_sure:
            dismiss();
            onSureClick(v);
            break;
        case R.id.tv_cancle:
            dismiss();
            onCancleClick(v);
            break;
        default:
            break;
        }
    }
    public TextView getContentTextView() {
        return tv_content;
    }
    public void onSureClick(View v) {
    }
    public void onCancleClick(View v) {
    }

}


填写信息对话框


dialog_repalce_nick.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:orientation="vertical"
    android:paddingBottom="32dp"
    android:paddingLeft="18dp"
    android:paddingRight="18dp"
    android:paddingTop="18dp" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp" >
        <ImageView
            android:id="@+id/iv_cancel"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:padding="5dp"
            android:src="@drawable/dialog_close_selector" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/iv_cancel"
            android:layout_alignParentLeft="true"
            android:layout_alignTop="@id/iv_cancel"
            android:layout_centerVertical="true"
            android:gravity="center_vertical"
            android:text="修改昵称"
            android:textColor="#666666"
            android:textSize="17sp" />
    </RelativeLayout>
    <TextView
        android:id="@+id/tv_modify_state"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:text="(还可免费修改一次)"
        android:textColor="#a8a8a8"
        android:textSize="13sp" />
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="24dp" >
        <TextView
            android:id="@+id/tv_former_nick"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:ellipsize="end"
            android:singleLine="true"
            android:text="原昵称:包青天"
            android:textColor="#a8a8a8"
            android:textSize="15sp" />
        <TextView
            android:id="@+id/tv_new_nick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@id/tv_former_nick"
            android:layout_marginTop="16dp"
            android:gravity="center"
            android:text="新昵称:"
            android:textColor="#808080"
            android:textSize="15sp" />
        <EditText
            android:id="@+id/et_new_nick"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@id/tv_new_nick"
            android:layout_alignTop="@id/tv_new_nick"
            android:layout_toRightOf="@id/tv_new_nick"
            android:background="@drawable/edit_input"
            android:ellipsize="end"
            android:minWidth="50dp"
            android:singleLine="true"
            android:textColor="#808080"
            android:textSize="15sp" >
        </EditText>
    </RelativeLayout>
    <TextView
        android:id="@+id/replace_ok"
        android:layout_width="160dp"
        android:layout_height="36dp"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="30dp"
        android:background="@drawable/tv_sure_color_bg"
        android:gravity="center"
        android:text="保存"
        android:textColor="#fff"
        android:textSize="16sp" />

</LinearLayout>


ReplaceNickDialog .java
import android.app.Dialog;
import android.content.Context;
import android.os.Handler;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class ReplaceNickDialog extends Dialog implements View.OnClickListener {
    private static final int MAX_LENGTH = 10;
    private TextView tv_modify_state;
    private TextView tv_replace_ok;
    private TextView tv_former_nick;
    private EditText et_new_nick;
    private ImageView iv_cancel;
    private OnEventListenerV2 mOnEventListenerV2;//回调
    private String new_nick;
    private boolean mIsNeedPay;//是否需要付费
    private Handler mHandler;
    private InputMethodManager imm;
    public ReplaceNickDialog(Context context, boolean isNeedPay, 
OnEventListenerV2 OnEventListenerV2) {
        super(context, R.style.DialogTheme);
        initView(isNeedPay, OnEventListenerV2);
    }
    public ReplaceNickDialog(Context context, int theme, boolean isNeedPay, 
OnEventListenerV2 OnEventListenerV2) {
        super(context, theme);
        initView(isNeedPay, OnEventListenerV2);
    }
    private void initView(boolean isNeedPay, OnEventListenerV2 onEventListenerV2) {
        setContentView(R.layout.dialog_repalce_nick);
        mIsNeedPay = isNeedPay;
        mOnEventListenerV2 = onEventListenerV2;
        tv_former_nick = (TextView) findViewById(R.id.tv_former_nick);
        tv_replace_ok = (TextView) findViewById(R.id.replace_ok);
        et_new_nick = (EditText) findViewById(R.id.et_new_nick);
        imm = (InputMethodManager) et_new_nick.getContext().
getSystemService(Context.INPUT_METHOD_SERVICE);
        iv_cancel = (ImageView) findViewById(R.id.iv_cancel);
        tv_modify_state = (TextView) findViewById(R.id.tv_modify_state);
        tv_replace_ok.setOnClickListener(this);
        iv_cancel.setOnClickListener(this);
        tv_former_nick.setText("原昵称:" + "包青天");
        et_new_nick.setText("包青天");
        et_new_nick.selectAll();
        if (mIsNeedPay) tv_modify_state.setText("1000秀币/次");
        else tv_modify_state.setText("(还可免费修改一次)");
        mHandler = new Handler();
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                showInputMeth();
            }
        }, 200);
    }
    @Override
    public void dismiss() {
        if (mHandler != null) mHandler.removeCallbacksAndMessages(null);
        mHandler = null;
        hideInputMeth();
        super.dismiss();
    }
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.replace_ok:
            new_nick = et_new_nick.getText().toString().trim();
            if (new_nick.length() == 0 || new_nick.equals("")) Toast.makeText(getContext(), "新昵称不能为空", 0).show();
            else if (new_nick.length() > MAX_LENGTH) Toast.makeText(getContext(), "新昵称不能超过" + MAX_LENGTH + "个字", 0).show();
            else if (new_nick.equals("包青天")) Toast.makeText(getContext(), "新昵称不能与原昵称相同", 0).show();
            else asyncModifyNickName(new_nick);
            break;
        case R.id.iv_cancel:
            this.dismiss();
            break;
        }
    }
    private void asyncModifyNickName(final String new_name) {
    }
    //显示输入法
    public void showInputMeth() {
        if (et_new_nick != null) {
            et_new_nick.setFocusable(true);
            imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
        }
    }
    //隐藏输入法
    private void hideInputMeth() {
        if (et_new_nick != null) imm.hideSoftInputFromWindow(et_new_nick.getWindowToken(), 0);
    }
}
interface OnEventListenerV2 {
    public void onEventListener(boolean successed, String msg, Object obj);

}


带图片的对话框


dialog_buy_car.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="260dp"
    android:layout_height="wrap_content"
    android:background="@drawable/dialog_bg"
    android:paddingBottom="28dp"
    android:paddingLeft="18dp"
    android:paddingRight="18dp"
    android:paddingTop="18dp" >
    <ImageView
        android:id="@+id/iv_close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:padding="5dp"
        android:src="@drawable/dialog_close_selector" />
    <TextView
        android:id="@+id/tv_car_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/iv_close"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@id/iv_close"
        android:gravity="center"
        android:paddingLeft="10dp"
        android:text="兰博基尼"
        android:textColor="#666666"
        android:textSize="17sp" />
    <ImageView
        android:id="@+id/iv_car_name"
        android:layout_width="110dp"
        android:layout_height="71dp"
        android:layout_below="@id/tv_car_name"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="10dp"
        android:src="@drawable/icar_store_dialog_defult" />
    <TextView
        android:id="@+id/tv_submit_buy"
        android:layout_width="80dp"
        android:layout_height="36dp"
        android:layout_alignParentRight="true"
        android:layout_below="@id/iv_car_name"
        android:layout_marginRight="10dp"
        android:background="@drawable/tv_sure_color_bg"
        android:gravity="center"
        android:text="购买"
        android:textColor="#fff"
        android:textSize="16sp" />
    <TextView
        android:id="@+id/tv_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/tv_submit_buy"
        android:layout_alignLeft="@id/tv_car_name"
        android:layout_alignTop="@id/tv_submit_buy"
        android:layout_marginLeft="10dp"
        android:gravity="left|center_vertical"
        android:text="3000 秀币/月"
        android:textColor="#666666"
        android:textSize="14sp" />

</RelativeLayout>


进度对话框


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="120dp"
    android:layout_height="120dp"
    android:background="@drawable/bg_progress_dialog"
    android:orientation="vertical" >
    <ProgressBar
        android:id="@+id/pgb_progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="18dp"
        android:indeterminateDrawable="@drawable/progress_white" />
    <TextView
        android:id="@+id/tv_messag"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pgb_progress"
        android:layout_centerInParent="true"
        android:layout_marginTop="5dp"
        android:ellipsize="end"
        android:singleLine="true"
        android:text="正在加载中…"
        android:textColor="#fff"
        android:textSize="18sp"
        android:visibility="visible" />

</RelativeLayout>


进度条的背景
progress_white.xml
<?xml version="1.0" encoding="UTF-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
            android:drawable="@drawable/progress_white_icon"
            android:fromDegrees="0.0"
            android:toDegrees="360.0"
            android:pivotX="50.0%"
            android:pivotY="50.0%" />
    </item>

</layer-list>


通用项

整个对话框的background,背景色-白色,圆角3dp

dialog_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#fff" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>



背景选择器
tv_cancle_color_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#80ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item><shape>
            <solid android:color="#fff" />
            <stroke android:width="1dp" android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>


文字颜色选择器
tv_cancle_color_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#80ffa726" android:state_pressed="true"></item>
    <item android:color="#ffa726"></item>

</selector>  




背景选择器
tv_sure_color_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><shape>
            <solid android:color="#80ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item android:state_enabled="false"><shape>
            <solid android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>
    <item><shape>
            <solid android:color="#ffa726" />
            <corners android:radius="3dp" />
        </shape></item>

</selector>


文字颜色选择器
tv_sure_color_text.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#7fffffff"></item>
    <item android:color="#fff"></item>

</selector>


关闭按钮图片选择器
dialog_close_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" android:drawable="@drawable/btn_clean_white_pressed"></item>
    <item android:drawable="@drawable/btn_clean_white"></item>

</selector>


对话框样式:背景透明,无标题栏,windowFrame框为无
styles.xml
<style name="DialogTheme" 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>

</style>


95秀-自定义对话框 dialog 合集的更多相关文章

  1. Android软件开发之盘点全部Dialog对话框大合集(一)

    对话框大合集 今天我用自己写的一个Demo和大家具体介绍一个Android中的对话框的使用技巧. 1.确定取消对话框 个button   通过调用setPositiveButton方法和 setNeg ...

  2. 关于JFace的自定义对话框(Dialog类)

    仅仅是使用MessageDialog,InputDialog等JFace中现成的对话框类是无法满足实际项目开发需要的. 很多时候都需要自己定制对话框,自定义对话框只要在Dialog类的基础上作扩展就行 ...

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

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

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

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

  5. Android 常见对话框的简单使用(提示信息对话框、单选多选对话框、自定义对话框)

    目录 一.提示信息对话框: 二.单选对话框: 三.多选对话框: 四.自定义对话框: 演示项目完整代码: 一.提示信息对话框: //显示提示消息对话框 private void showMsgDialo ...

  6. Android 自定义View合集

    自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/ ...

  7. Android中的对话框AlertDialog使用技巧合集-转载

    Android中的对话框AlertDialog使用技巧合集     文章来自:http://blog.csdn.net/blue6626/article/details/6641105   今天我用自 ...

  8. Android项目实战(七):Dialog主题Activity实现自定义对话框效果

    想必大家都用过Dialog主题的Activity吧,用它来显示自定义对话框效果绝对是一个非常不错的选择. 即把activity交互界面以Dialog的形式展现出来,Dialog主题的Activity大 ...

  9. android继承Dialog实现自定义对话框

    有时需要自定义对话框,可以使用AlterDialog.Bulider,比如下面的代码片段 new AlertDialog.Builder(self) .setTitle("标题") ...

随机推荐

  1. JavaScript-学习一加载不动

    为先加载的js后加载的html 加载完js运行时因为未加载html的原因导致找不到js所控制的元素 所以解决的方法就是把js放到控制元素的下方 或者html的底部 做成函数的时候可以放在头部,也就是说 ...

  2. 打包静默安装参数(nsis,msi,InstallShield,InnoSetup)[转]

    有时我们在安装程序的时候,希望是静默安装的,不显示下一步下一步,这编访问来教大家如何来操作,现在常用的制作安装程序的软件有,  Microsoft Windows Installer  , Windo ...

  3. css 日常

    去掉input边框    outline:none; 不让用户选择文本 user-select: none; 手机网页点击输入框的瞬间会出现灰色背景    解决方案: -webkit-tap-high ...

  4. os mac apache+php+mysql环境配置

    1.启用系统自带的apache 服务 打开终端(terminal) #sudo apachectl start #sudo vi /etc/apache2/httpd.conf 修改 LoadModu ...

  5. $_CFG = load_config(); /* 载入系统参数 */

    ecshop 中$_CFG数组主要是放置一些系统参数,并且全站共享的数据,在使用的时候,ecshop里面常常以$GLOBALS['_CFG']全局变量的模式来处理. ecshop 的$GLOBALS[ ...

  6. Request.QueryString 不能像使用方法那样使用不可调用

    想要获取URL栏中的字符串,于是敲下代码如下: string other = HttpContext.Current.Request.ServerVariables("QUERY_STRIN ...

  7. Android 开发中使用 SQLite 数据库

    SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能. 此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP ...

  8. IDF 实验室部分题目WriteUp

    前天花了一个下午的时间刷了几道IDF实验室的题目, 这个网站实在是有点冷清, 题目也比较少, 所以就被我和师兄们刷榜了2333... 因为我最先开始做, 所以就干脆刷到第一去了. 题目很水, 切莫见怪 ...

  9. POJ3080 Blue Jeans

    题目链接. 题目大意: 给定n个字符串,找出最长相同且长度大于3的子串,如果存在多个,找出字典序最小的. 分析: 直接枚举(暴搜). 对于s[0]的每一个子串,判断是否在其它n-1个字符串中都存在. ...

  10. 无向图求割点 UVA 315 Network

    输入数据处理正确其余的就是套强联通的模板了 #include <iostream> #include <cstdlib> #include <cstdio> #in ...