先上图:我自定义的效果,大家可以根据我的步骤定义出任何效果。
一、创建自定义dialog类,继承自Dialog。
package com.meijianfang.customView;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.LinearLayout;
import com.meijianfang.R;
/**
* 项目名称:MeiJianFang
* 类描述:
* 创建人:cdy
* 创建时间:2016/3/17
* 修改人:cdy
* 修改时间:13:04
* 修改备注:自定义的dialog展示筛选条件
*/
public class ScreenDialog extends Dialog implements View.OnClickListener{
private Context context;
//声明自定义的接口
private ClickListenerInterface clickListenerInterface;
//实现构造方法
public ScreenDialog(Context context){
super(context);
this.context = context;
}
public ScreenDialog(Context context, int themeResId) {
super(context, themeResId);
}
protected ScreenDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
}
//自定义接口
public interface ClickListenerInterface {
public void click(int id);
}
//接口的回调方法,以供实现接口调用
public void setOnCallbackLister(ClickListenerInterface clickListenerInterface){
this.clickListenerInterface = clickListenerInterface;
}
//重写onCreate方法,
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去掉标题栏,注意此处的去掉标题栏,并不是去掉当前activity的标题栏,而是去掉自定义的dialog的标题
//如果不去掉现实的dialog会有一个空白的头部。由此可见我们的dialog和activity是如此的相像。
requestWindowFeature(Window.FEATURE_NO_TITLE);
init();
}
/**
* 初始化自定义的布局界面,使用inflater将自定义的布局压进我们的当前dialog窗体。
*/
public void init() {
LayoutInflater inflater = LayoutInflater.from(context);
//自定义布局转换成view
View view = inflater.inflate(R.layout.layout_screen_dialog, null);
//设置到当前的窗体
setContentView(view);
//拿到自定义布局的各个控件
LinearLayout history_screen_quanbu = (LinearLayout)view.findViewById(R.id.history_screen_quanbu);
LinearLayout history_screen_week = (LinearLayout)view.findViewById(R.id.history_screen_week);
LinearLayout history_screen_month = (LinearLayout)view.findViewById(R.id.history_screen_month);
LinearLayout history_screen_halfyear = (LinearLayout)view.findViewById(R.id.history_screen_halfyear);
LinearLayout history_screen_yeay = (LinearLayout)view.findViewById(R.id.history_screen_yeay);
//设置点击事件
history_screen_quanbu.setOnClickListener(this);
history_screen_week.setOnClickListener(this);
history_screen_month.setOnClickListener(this);
history_screen_halfyear.setOnClickListener(this);
history_screen_yeay.setOnClickListener(this);
Window dialogWindow = getWindow();
//设置圆角样式
dialogWindow.setBackgroundDrawableResource(R.drawable.dialog