zoukankan      html  css  js  c++  java
  • 软工超越日报-Android底边弹出框 5/15

    今天我们来写一个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的那种味道了!

  • 相关阅读:
    CentOS下Docker与.netcore(五)之 三剑客之一Docker-swarm集群
    Dockerfile 解析--文件结构
    秒懂JWT
    智能爬虫框架
    Docker 学习笔记-数据管理
    枚举器与迭代器
    Entity Framework 并发冲突解决方案
    Entity Framework Core 简介
    Try 和异常
    Nginx反向代理实现docker容器域名解析
  • 原文地址:https://www.cnblogs.com/Sakuraba/p/14910996.html
Copyright © 2011-2022 走看看