android自定义对话框样式
2015-02-27 13:26
447 查看
首先看一下效果图:
准备工作:新建一个对话框样式xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="@drawable/pop_bg"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="40.0dip"
android:gravity="center"
android:text="title.."
android:textColor="#fffffb"
android:textSize="20sp"
android:background="@color/bar_text_2"
android:visibility="visible" />
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="40.0dip"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="say something.."
android:textColor="#fffffb"
android:textSize="20sp"
android:visibility="visible" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:layout_gravity="bottom"
android:layout_marginTop="5dp"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/positiveButton"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:background="@drawable/btn_ok_selector"
android:textColor="#fffffb"
android:text="保存"
android:gravity="center" />
<Button
android:id="@+id/negativeButton"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginLeft="20.0dip"
android:textColor="#fffffb"
android:text="取消"
android:background="@drawable/btn_cancel_selector"
android:gravity="center" />
</LinearLayout>
</LinearLayout>
随便取个名字,这里我用dialog.xml,这里标红的用到了几个样式,在colors.xml里配置:
<drawable name="pop_bg">#2D3A51</drawable>
<drawable name="btn_ok_selector">#09941F</drawable>
<drawable name="btn_cancel_selector">#7D93AE</drawable>
接下来,新建一个dialog类,继承dialog
package com.zihao.xbtn;
import com.zihao.R;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
public class CustomDialog extends Dialog {
public Button positiveButton, negativeButton;
public TextView title,message;
public String titleStr,messageStr,positiveButtonStr,negativeButtonStr;
public CustomDialog(Context context,String title,String message,String positiveButtonStr,String negativeButtonStr) {
super(context);
this.titleStr = title;
this.messageStr = message;
this.positiveButtonStr = positiveButtonStr;
this.negativeButtonStr = negativeButtonStr;
setCustomDialog();
}
private void setCustomDialog() {
requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题
View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog, null);
title = (TextView) mView.findViewById(R.id.title);
message = (TextView) mView.findViewById(R.id.message);
positiveButton = (Button) mView.findViewById(R.id.positiveButton);
negativeButton = (Button) mView.findViewById(R.id.negativeButton);
title.setText(titleStr);
message.setText(messageStr);
positiveButton.setText(positiveButtonStr);
negativeButton.setText(negativeButtonStr);
super.setContentView(mView);
}
/**
* 确定键监听器
* @param listener
*/
public void setOnPositiveListener(View.OnClickListener listener){
positiveButton.setOnClickListener(listener);
}
/**
* 取消键监听器
* @param listener
*/
public void setOnNegativeListener(View.OnClickListener listener){
negativeButton.setOnClickListener(listener);
}
}
以上准备工作就完成了,接下来就是调用
在要调用的activity中新建此方法:
private void dialog() {
final CustomDialog dialog = new CustomDialog(this,"家家帮友情提示","确定退出吗?","确定","取消");//第二个参数是title,第三个参数是message,第四个参数是positiveButton的text,第五个参数是negativeButton的text
//dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//EditText editText = (EditText) dialog.getEditText();//方法在CustomDialog中实现
dialog.setOnPositiveListener(new OnClickListener() {
@Override
public void onClick(View v) {
//dosomething youself
dialog.dismiss();
}
});
dialog.setOnNegativeListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
//设置弹出框在屏幕弹出的长宽(此处最好不能写死,如600,350,会造成兼容性问题)
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//设置对话框的宽度和高度
}
要调用对话框时只要在onClick时调用此dialog方法就行了
@Override
public void onClick(View view) {
int id = view.getId();
switch (id) {
case R.id.circular:
dialog();
break;
default:
break;
}
}
准备工作:新建一个对话框样式xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:background="@drawable/pop_bg"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="40.0dip"
android:gravity="center"
android:text="title.."
android:textColor="#fffffb"
android:textSize="20sp"
android:background="@color/bar_text_2"
android:visibility="visible" />
<TextView
android:id="@+id/message"
android:layout_width="fill_parent"
android:layout_height="40.0dip"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="say something.."
android:textColor="#fffffb"
android:textSize="20sp"
android:visibility="visible" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="60.0dip"
android:layout_gravity="bottom"
android:layout_marginTop="5dp"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/positiveButton"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:background="@drawable/btn_ok_selector"
android:textColor="#fffffb"
android:text="保存"
android:gravity="center" />
<Button
android:id="@+id/negativeButton"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_marginLeft="20.0dip"
android:textColor="#fffffb"
android:text="取消"
android:background="@drawable/btn_cancel_selector"
android:gravity="center" />
</LinearLayout>
</LinearLayout>
随便取个名字,这里我用dialog.xml,这里标红的用到了几个样式,在colors.xml里配置:
<drawable name="pop_bg">#2D3A51</drawable>
<drawable name="btn_ok_selector">#09941F</drawable>
<drawable name="btn_cancel_selector">#7D93AE</drawable>
接下来,新建一个dialog类,继承dialog
package com.zihao.xbtn;
import com.zihao.R;
import android.app.Dialog;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.TextView;
public class CustomDialog extends Dialog {
public Button positiveButton, negativeButton;
public TextView title,message;
public String titleStr,messageStr,positiveButtonStr,negativeButtonStr;
public CustomDialog(Context context,String title,String message,String positiveButtonStr,String negativeButtonStr) {
super(context);
this.titleStr = title;
this.messageStr = message;
this.positiveButtonStr = positiveButtonStr;
this.negativeButtonStr = negativeButtonStr;
setCustomDialog();
}
private void setCustomDialog() {
requestWindowFeature(Window.FEATURE_NO_TITLE);//去除标题
View mView = LayoutInflater.from(getContext()).inflate(R.layout.dialog, null);
title = (TextView) mView.findViewById(R.id.title);
message = (TextView) mView.findViewById(R.id.message);
positiveButton = (Button) mView.findViewById(R.id.positiveButton);
negativeButton = (Button) mView.findViewById(R.id.negativeButton);
title.setText(titleStr);
message.setText(messageStr);
positiveButton.setText(positiveButtonStr);
negativeButton.setText(negativeButtonStr);
super.setContentView(mView);
}
/**
* 确定键监听器
* @param listener
*/
public void setOnPositiveListener(View.OnClickListener listener){
positiveButton.setOnClickListener(listener);
}
/**
* 取消键监听器
* @param listener
*/
public void setOnNegativeListener(View.OnClickListener listener){
negativeButton.setOnClickListener(listener);
}
}
以上准备工作就完成了,接下来就是调用
在要调用的activity中新建此方法:
private void dialog() {
final CustomDialog dialog = new CustomDialog(this,"家家帮友情提示","确定退出吗?","确定","取消");//第二个参数是title,第三个参数是message,第四个参数是positiveButton的text,第五个参数是negativeButton的text
//dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
//EditText editText = (EditText) dialog.getEditText();//方法在CustomDialog中实现
dialog.setOnPositiveListener(new OnClickListener() {
@Override
public void onClick(View v) {
//dosomething youself
dialog.dismiss();
}
});
dialog.setOnNegativeListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
//设置弹出框在屏幕弹出的长宽(此处最好不能写死,如600,350,会造成兼容性问题)
dialog.getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);//设置对话框的宽度和高度
}
要调用对话框时只要在onClick时调用此dialog方法就行了
@Override
public void onClick(View view) {
int id = view.getId();
switch (id) {
case R.id.circular:
dialog();
break;
default:
break;
}
}
相关文章推荐
- 自定义 Android 对话框 (AlertDialog) 的样式
- Android自定义样式的对话框
- Android自定义样式的对话框
- Android自定义样式对话框Dialog
- Android自定义样式的对话框
- 自定义 Android 对话框 (AlertDialog) 的样式
- Android自定义样式的对话框
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- 自定义 Android 对话框 (AlertDialog) 的样式
- android 自定义对话框样式
- Android自定义样式的对话框
- 自定义 Android 对话框 (AlertDialog) 的样式
- Android自定义Dialog对话框样式出现的边框无法填满问题
- 自定义 Android 对话框 (AlertDialog) 的样式
- android,自定义无标题对话框(继承Dialog类,非AlertDialog)的样式
- Android自定义样式的对话框
- 自定义 Android 对话框 (AlertDialog) 的样式(转载)
- 谁说Android没有好的对话框?能够自定义炫酷样式的LemonHello来啦~
- Android 自定义对话框样式