今天我们来写一个android的底边框,以此将相册选择和现场拍照这两个功能集成在一个按钮里
代码如下:
//底部弹出框(拍照) private void showBottomDialog() { //1、使用Dialog、设置style final Dialog dialog = new Dialog(this, R.style.DialogTheme); //2、设置布局 View view = View.inflate(this, R.layout.buttomtoola, null); dialog.setContentView(view); Window window = dialog.getWindow(); //设置弹出位置 window.setGravity(Gravity.BOTTOM); //设置弹出动画 window.setWindowAnimations(R.style.main_menu_animStyle); //设置对话框大小 window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); dialog.show(); dialog.findViewById(R.id.tv_take_photo).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); image_uri = Utils.start_camera(MainActivity.this, 1002); } }); dialog.findViewById(R.id.tv_take_pic).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 打开相册 Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, 1); dialog.dismiss(); } }); dialog.findViewById(R.id.tv_cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dialog.dismiss(); } }); }
这样就可以实现底部弹出框的效果了
顺带一提,所使用的activity长成这个样子:
<?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:background="#fff" android:orientation="vertical"> <TextView android:id="@+id/tv_take_photo" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="拍摄" android:textColor="@android:color/background_dark" android:textSize="16sp" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="@android:color/darker_gray" /> <TextView android:id="@+id/tv_take_pic" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="相册选择" android:textColor="@android:color/background_dark" android:textSize="16sp" /> <View android:layout_width="match_parent" android:layout_height="5dp" android:background="@android:color/darker_gray" /> <TextView android:id="@+id/tv_cancel" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" android:text="取消" android:textColor="@android:color/background_dark" android:textSize="16sp" /> </LinearLayout>
这是我们一个组员写出来的,用view作为分割线真是巧妙,真的有QQ的那种味道了!