首先看下效果图:
代码实现:
dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:background="#969696" />
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:gravity="left|center_vertical"
android:padding="10dp"
android:text="新增"
android:textColor="#2a2a2a"
android:textSize="15sp"
android:background="@drawable/btn_style"
/>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:background="#a6a6a6" />
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:gravity="left|center_vertical"
android:padding="10dp"
android:text="修改"
android:textColor="#2a2a2a"
android:textSize="15sp"
android:background="@drawable/btn_style"
/>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:background="#a6a6a6" />
<Button
android:id="@+id/button3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:gravity="left|center_vertical"
android:padding="10dp"
android:text="删除"
android:textColor="#2a2a2a"
android:textSize="15sp"
android:background="@drawable/btn_style"
/>
</LinearLayout>
</LinearLayout>
资源文件,btn_style.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@color/list_color"/>
<item android:state_pressed="true" android:drawable="@color/list_color" />
<item android:drawable="@color/white"/>
</selector>
colors.xml:
<color name="list_color">#eaeaea</color>
最后看下activity中代码:
final AlertDialog dialog = new AlertDialog.Builder(MainActivity.this).create();
View view = getActivity().getLayoutInflater().inflate(R.layout.dialog, null);//自定义布局
dialog.setView(view, 0, 0, 0, 0);//把自定义的布局设置到dialog中,注意,布局设置一定要在show之前。从第二个参数分别填充内容与边框之间左、上、右、下、的像素
dialog.show();//一定要先show出来再设置dialog的参数,不然就不会改变dialog的大小了
LayoutParams params = dialog.getWindow().getAttributes();//得到这个dialog界面的参数对象
params.height = LayoutParams.WRAP_CONTENT;//设置dialog高度为包裹内容
params.gravity = Gravity.CENTER;//设置dialog的重心
//dialog.getWindow().setLayout(width-(width/6), LayoutParams.WRAP_CONTENT);//用这个方法设置dialog大小也可以,但是这个方法不能设置重心之类的参数,推荐用Attributes设置
dialog.getWindow().setAttributes(params);//最后把这个参数对象设置进去,即与dialog绑定
点击事件即为button的点击事件,这里不用多介绍。