zoukankan      html  css  js  c++  java
  • 两种方式分别改变alertdialog的宽和高

    今天用到的自定义dialog有两种方式。但是改变宽和高费了半天时间,网上也没有人遇到过这种情况。。所以最终用了两种方式分别改宽和高才成功。

    方式一:添加一个xml文件,里面添加dialog的样式,然后:

       Window window = dialog.getWindow() ;

    window.setContentView(R.layout.login_wait_dialog);     //自定义一个xml文件
    TextView tv = (TextView) window.findViewById(R.id.tv);
    tv.setText("正在登录,请稍后");

    方式二:使用windowmanager设置dialog的params,然后添加到dialog中:

     /*
    * 将对话框的大小按屏幕大小的百分比设置
    */
    Window window = dialog.getWindow() ;
    WindowManager m = getWindowManager();
    Display d = m.getDefaultDisplay(); // 获取屏幕宽、高用
    WindowManager.LayoutParams p = window.getAttributes(); // 获取对话框当前的参数值
    p.height = (int) (d.getHeight() * 0.6); // 改变的是dialog框在屏幕中的位置而不是大小
           p.width = (int) (d.getWidth() * 0.65); // 宽度设置为屏幕的0.65
    window.setAttributes(p);

    最终使用两种方式分别更改dialog框的宽和高才成功。
    代码:

    Builder builder = new AlertDialog.Builder(LoginActivity.this);
    final AlertDialog dialog = builder.create() ;
    dialog.setTitle("正在登录,请稍后");
    dialog.show();
    //这些设置必须放在 dialog.show();后面才能有效果
    Window window = dialog.getWindow() ;
    window.setContentView(R.layout.login_wait_dialog);
    RelativeLayout relayout = (RelativeLayout) window.findViewById(R.id.relayout);
    Display display =getWindowManager().getDefaultDisplay();
    int minHeight = (int) (display.getHeight()*0.16);              //使用这种方式更改了dialog的框高
    // int minWidth = (int) (display.getWidth()*0.4);             //没有效果
    relayout.setMinimumHeight(minHeight);

    WindowManager.LayoutParams params = window.getAttributes() ;
    params.width =(int) (display.getWidth()*0.5);                     //使用这种方式更改了dialog的框宽
    window.setAttributes(params);



  • 相关阅读:
    maven公共库
    java截取当前屏幕图片
    JAVE视频处理
    jar在maven仓库里面没有时 , 把jar导入本地仓库步骤
    3 .shell 之linux四剑客sed/grep/awk/find
    Spring学习(四)-基于注解的Bean管理
    Spring学习(三)-Bean的种类,作用域,生命周期
    Spring学习(一)-基本入门
    dubbo服务连接zookeeper报错:java.net.ConnectException: Connection refused
    idea-常用设置二
  • 原文地址:https://www.cnblogs.com/jkx1229761162/p/4763201.html
Copyright © 2011-2022 走看看