首页 > 其他分享 >android设置弹框高为屏幕宽得2/3

android设置弹框高为屏幕宽得2/3

时间:2023-07-19 13:32:10浏览次数:39  
标签:宽得 layoutParams 弹框 高为 AlertDialog dialog displayMetrics 屏幕

Android设置弹框高为屏幕宽的2/3

Android开发中,经常需要在应用中使用弹框来展示一些重要的信息或者进行用户交互。设置弹框的高度为屏幕宽的2/3是一个常见的需求。本文将介绍如何通过代码实现这一功能。

获取屏幕宽度

在Android中,我们可以通过以下代码来获取屏幕的宽度:

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int screenWidth = displayMetrics.widthPixels;

上述代码首先创建了一个DisplayMetrics对象,然后通过getDefaultDisplay()方法获取到默认的Display对象,接着调用getMetrics()方法将屏幕的信息保存到displayMetrics对象中。最后,我们可以通过displayMetrics.widthPixels来获取屏幕的宽度。

设置弹框的高度

要将弹框的高度设置为屏幕宽度的2/3,我们可以通过以下代码实现:

AlertDialog.Builder builder = new AlertDialog.Builder(this);
AlertDialog dialog = builder.create();
WindowManager.LayoutParams layoutParams = dialog.getWindow().getAttributes();
layoutParams.width = screenWidth;
layoutParams.height = (screenWidth * 2) / 3;
dialog.getWindow().setAttributes(layoutParams);
dialog.show();

上述代码中,我们首先创建了一个AlertDialog.Builder对象,并通过该对象创建了一个AlertDialog对象。然后,通过dialog.getWindow().getAttributes()方法获取到当前弹框的窗口属性对象。接着,我们将屏幕的宽度设置到layoutParams.width中,将屏幕宽度的2/3设置到layoutParams.height中。最后,我们通过dialog.getWindow().setAttributes()方法将修改后的窗口属性应用到弹框中,并通过dialog.show()方法显示弹框。

完整示例代码

下面是一个完整的示例代码,演示如何将弹框的高度设置为屏幕宽度的2/3:

import android.app.AlertDialog;
import android.content.Context;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.DisplayMetrics;
import android.view.WindowManager;

public class MainActivity extends AppCompatActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        // 获取屏幕宽度
        DisplayMetrics displayMetrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
        int screenWidth = displayMetrics.widthPixels;

        // 设置弹框的高度为屏幕宽度的2/3
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        AlertDialog dialog = builder.create();
        WindowManager.LayoutParams layoutParams = dialog.getWindow().getAttributes();
        layoutParams.width = screenWidth;
        layoutParams.height = (screenWidth * 2) / 3;
        dialog.getWindow().setAttributes(layoutParams);
        dialog.show();
    }
}

在上述代码中,我们首先获取屏幕的宽度,然后通过AlertDialog.Builder创建了一个AlertDialog对象,最后设置了弹框的窗口属性,并显示了该弹框。

总结

通过上述代码,我们可以很方便地将弹框的高度设置为屏幕宽度的2/3。这样能够更好地适应不同屏幕尺寸的设备,提升用户体验。希望本文对你理解如何设置弹框高度有所帮助!

标签:宽得,layoutParams,弹框,高为,AlertDialog,dialog,displayMetrics,屏幕
From: https://blog.51cto.com/u_16175491/6774906

相关文章

  • 前端Vue仿美团右侧侧边栏弹框筛选框popup alert
    随着技术的发展,开发的复杂度也越来越高,传统开发方式将一个系统做成了整块应用,经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改,造成牵一发而动全身。通过组件化开发,可以有效实现单独开发,单独维护,而且他们之间可以随意的进行组合。大大提升开发效率......
  • layui layer.open弹框iframe最大化下面有空白处理
    思考为什么最大化会导致下面有空白这个时候我们去看这个时候就会发现其实他并没有任何去设置了他的一个高度我们的一个高度只不过是基于我们的弹框设置了多少高度那么他就是多少高度最终需要最大化处理一下他的那个方法 需要去获取到他的谈款的iframe这个引入然后去处理掉他。......
  • 自定义弹框
    项目要求就自己写了一个弹框不知道对不对先记录下来目前支持四种样式吧可以按钮文字内容的个别文字变色  改变文字颜色的调用方法 SJZAlertViewController*vc=[[SJZAlertViewControlleralloc]init];  __weaktypeof(self)weakSelf=self;  NSString......
  • vue 弹框分左右两部分
    <divclass="dialog_diy"><el-dialog:visible.sync="otherShow":close-on-click-modal='true'width="40%"height="80%"><divslot="title"class="header-title"......
  • 前端Vue自定义微信支付弹框dialog alert popup
    前端Vue自定义微信支付弹框dialogalertpopup, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13245效果图如下:实现代码如下:cc-payDialog使用方法<!--:money:支付金额 show:是否显示@cancel:取消 @success:确认支付--><cc-payDia......
  • 高德地图动态Marker和自定义弹框、交互事件、中心点跳转
    高德地图vue3使用下载NPM:npmi@amap/amap-jsapi-loader--save根据官网提示,VUE3需要改变监听模式下载npmi@vue/reactivity组件内配置初始化<scriptsetup>//开发技术vue3piniatsimport{ref}from"vue";importAMapLoaderfrom"@amap/amap-jsapi-loa......
  • 前端Vue自定义发送短信验证码弹框popup 实现剩余秒数计数 重发短信验证码
    前端Vue自定义发送短信验证码弹框popup实现剩余秒数计数重发短信验证码,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13207效果图如下:实现代码如下:cc-codeDialog使用方法<!--show:是否显示弹框phone:手机号 autoCountdown:自动时间秒数len:短信......
  • 前端Vue仿京东加入购物车弹框立即购买弹框shopDialog自定义弹框内容
    前端Vue仿京东加入购物车弹框立即购买弹框shopDialog自定义弹框内容,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13183效果图如下:cc-shopDialog使用方法使用注意:该插件需引用cc-radioBtnBox插件和cc-numbox插件两个插件库cc-radioBtn......
  • 前端Vue自定义询问弹框和输入弹框
    前端Vue自定义询问弹框和输入弹框,下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13119效果图如下:使用方法<!--提示框--><cc-defineDialogBoxref="DialogBox"></cc-defineDialogBox>//显示询问弹框showDialogBox(){this.$refs['D......
  • 前端Vue自定义服务说明弹窗弹框 自下而上底部弹框
    前端Vue自定义服务说明弹窗弹框自下而上底部弹框,请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13108效果图如下:cc-serviceDialog自定义服务说明弹窗自下而上底部弹窗使用方法<!--服务组件弹窗close:关闭事件class:定义类(显示或隐藏) --><cc......