普通的确认对话框


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. 【USACO 2.2.2】集合

    [题目描述] 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每 ...

  2. YesFInder - Web File Manager 网页文件管理系统

    开发原由: 原来想找一下实现可视化图片上传程序,先找了ckfinder,发现居然是收费的,而且用起来也不顺手,于是想能不能自己写一个.想到这就立即动手,花2天时间完成初步功能,然后再花了3天完善.目前 ...

  3. oracle触发器应用

    首先给大家推荐两篇我看后的博文,我已经内容转载过来: 1.对触发器的讲解 本篇主要内容如下: 8.1 触发器类型 8.1.1 DML触发器 8.1.2 替代触发器 8.1.3 系统触发器 8.2 创建 ...

  4. 如何用angularjs制作一个完整的表格之四__自定义ng-model标签的属性使其支持input之外的html元素

    有的时候我们需要为非input类型的元素添加ng-model来实现双向的数据绑定,从而减少冗余代码,那么可以尝试一下的方式 例如:我页面中使用了contenteditable这个属性来实现用户可直接编 ...

  5. jquery.cookie()方法

    jquery.cookie.js是一个轻量级的cookie 插件,可以读取.写入.删除 cookie. 首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件. < ...

  6. · HTML使用Viewport

    · HTML使用ViewportViewport可以加速页面的渲染,请使用以下代码<meta name=”viewport” content=”width=device-width, initi ...

  7. css position 相对定位

    <html> <head> <style type="text/css"> h2.pos_left { position:relative; l ...

  8. 『Python』 ThreadPool 线程池模板

    Python 的 简单多线程实现 用 dummy 模块 一句话就可以搞定,但需要对线程,队列做进一步的操作,最好自己写个线程池类来实现. Code: # coding:utf-8 # version: ...

  9. 转:Node.js异步处理CPU密集型任务的新思路

    原文来自于:http://www.infoq.com/cn/articles/new-idea-of-nodejs-asynchronous-processing-tasks?utm_source=i ...

  10. 手工走一次OPENSTACK安装,掉一层皮啊

    掉皮也是值得的,对OS的了解慢慢加深. 最近加入CS的Q群也学到不少.