**一,自定义布局**
Dialog在项目中使用非常频繁,往往系统的样式不能满足我们的需求,所以经常需要自定义。下面有一个方法非常简单,只要你把布局写好,再直接塞到Dialog里面就可以了,
代码如下:
/**
* 弹出头像选择框,拍照,相册
*/
public void showDialogChoosePhoto(){
final Dialog dialog= new AlertDialog.Builder(this).create();
LayoutInflater inflater=LayoutInflater.from(this);
FrameLayout frameLayout= (FrameLayout) inflater.inflate(R.layout.dialog_custom_choose,null);
//拍照
TextView tv_choose_takePhoto= (TextView) frameLayout.findViewById(R.id.tv_choose_takePhoto);
//从相册选择
TextView tv_choose_fromAlbum= (TextView) frameLayout.findViewById(R.id.tv_choose_fromAlbum);
//拍照选择头像
tv_choose_takePhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(mContext,"拍照选择头像",Toast.LENGTH_SHORT).show();
}
});
//从图库选择头像
tv_choose_fromAlbum.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
Toast.makeText(mContext,"从图库选择头像",Toast.LENGTH_SHORT).show();
}
});
dialog.show();
dialog.getWindow().setContentView(frameLayout);
}
你可以自定义任何一样的布局,直接塞进去就行了,非常方便。
二,DialogFragment
当需要在Dialog中完成一些复杂的操作的时候,DialogFragment就很好了
宽度问题可以看这个:http://blog.csdn.net/zhyh1986/article/details/48655885