热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android自定义底部弹出对话框

现在很多应用的头像设置都要求从屏幕底部弹出对话框,因为Android系统自带的对话框都是在屏幕中央,所以对于显示在底部的对话框就需要自己定义了。代码如下:packagecom.org.buttomd

现在很多应用的头像设置都要求从屏幕底部弹出对话框,因为Android系统自带的对话框都是在屏幕中央,所以对于显示在底部的对话框就需要自己定义了。

代码如下:

package com.org.buttomdialog;

import android.app.Dialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Display;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.Button;

public class MainActivity extends ActionBarActivity {
private Dialog setHeadDialog;
private View mDialogView;
private Button mButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButton = (Button) findViewById(R.id.button1);

mButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
showDialog();
}
});
}

public void showDialog() {
setHeadDialog = new Builder(this).create();
setHeadDialog.show();
mDialogView = View.inflate(getApplicationContext(),
R.layout.layout_dialog, null);

setHeadDialog.getWindow().setContentView(mDialogView);

WindowManager windowManager = this.getWindowManager();
Display display = windowManager.getDefaultDisplay();
WindowManager.LayoutParams lp = setHeadDialog.getWindow()
.getAttributes();
lp.width = (int) (display.getWidth()); // 设置宽度
setHeadDialog.getWindow().setAttributes(lp);
bindDialogEvent();

}

private void bindDialogEvent() {
Button cameraButton = (Button) mDialogView
.findViewById(R.id.iv_userinfo_takepic);
Button photoButton = (Button) mDialogView
.findViewById(R.id.iv_userinfo_choosepic);
Button cancelButton = (Button) mDialogView
.findViewById(R.id.iv_userinfo_cancle);

cameraButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
setHeadDialog.dismiss();
}
});
photoButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
setHeadDialog.dismiss();
}
});
cancelButton.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
setHeadDialog.dismiss();
}
});
}
}
自定义布局:layout_dialog.xml


android:layout_
android:layout_
android:orientation="vertical" >

android:layout_
android:layout_
android:layout_alignParentBottom="true"
android:background="#000000"
android:gravity="center_horizontal"
android:orientation="vertical" >


android:layout_
android:layout_
android:background="#ffffff"
android:gravity="center"
android:orientation="vertical"
android:padding="7dp" >

android:id="@+id/iv_userinfo_takepic"
android:layout_
android:layout_
android:background="@drawable/green_btn_selector"
android:text="拍照"/>



android:layout_
android:layout_
android:background="#ffffff"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="7dp" >

android:id="@+id/iv_userinfo_choosepic"
android:layout_
android:layout_
android:background="@drawable/green_btn_selector"
android:text="从相册选择"/>



android:layout_
android:layout_
android:background="#ffffff"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="7dp" >

android:id="@+id/iv_userinfo_cancle"
android:layout_
android:layout_
android:background="@drawable/gray_btn_selector"
android:text="取消"/>



对于Button的选择效果的xml文件就不贴出了。

运行效果如下:


推荐阅读
author-avatar
重新生活好吗
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有