Android:如何以编程方式设置布局的大小

2023-12-03

作为 Android 应用程序的一部分,我正在构建一个按钮集。这些按钮是一组嵌套的 LinearLayout 的一部分。使用权重,我可以根据包含父 LinearLayout 的大小自动调整集合的大小。这个想法是,根据屏幕的像素数和密度,将包含布局的大小设置为像素数;并让按钮集根据该更改自行调整大小。

那么问题是:如何调整布局大小。

我尝试了几种建议的技术,但没有一种能有效发挥作用。以下是构建按钮集的 XML 子集:

    <LinearLayout android:layout_height="104pt" android:id="@+id/numberPadLayout" android:orientation="horizontal" android:layout_width="104pt"
    android:background="#a0a0a0"
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true"
>

    <LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="wrap_content">
        <Button android:text="1" android:id="@+id/button1" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="4" android:id="@+id/button4" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="7" android:id="@+id/button7" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="-" android:id="@+id/buttonDash" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
    </LinearLayout>
    <LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout2" android:orientation="vertical" android:layout_width="wrap_content">
        <Button android:text="2" android:id="@+id/button2" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="5" android:id="@+id/button5" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="8" android:id="@+id/button8" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="0" android:id="@+id/button0" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
    </LinearLayout>

    <LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout3" android:orientation="vertical" android:layout_width="wrap_content">
        <Button android:text="3" android:id="@+id/button3" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="6" android:id="@+id/button6" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="9" android:id="@+id/button9" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="." android:id="@+id/buttonDot" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
    </LinearLayout>
    <LinearLayout android:layout_weight="2" android:layout_height="fill_parent" android:id="@+id/linearLayout4" android:orientation="vertical" android:layout_width="wrap_content">
        <Button android:text="/" android:id="@+id/buttonBack" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
        <Button android:text="\" android:id="@+id/buttonEnter" android:layout_weight="2" android:layout_width="fill_parent" android:layout_height="wrap_content"></Button>
    </LinearLayout>

</LinearLayout>    

这两个问题是:1)如何从 Java 访问 numberPadLayout。一旦我可以访问视图,2)如何更改布局的高度和宽度。

任何建议将不胜感激。


Java

这应该有效:

// Gets linearlayout
LinearLayout layout = findViewById(R.id.numberPadLayout);
// Gets the layout params that will allow you to resize the layout
LayoutParams params = layout.getLayoutParams();
// Changes the height and width to the specified *pixels*
params.height = 100;
params.width = 100;
layout.setLayoutParams(params);

如果要将倾角转换为像素,请使用以下命令:

int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, <HEIGHT>, getResources().getDisplayMetrics());

Kotlin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何以编程方式设置布局的大小 的相关文章

  • Android:处理电话中的语音

    我目前正在寻找有关如何在 Android 上操作音频的选项 目标是在通话期间实时处理来自麦克风的音频 最好的解决方案是在本机调用中执行此操作 但重建一个电话应用程序 无 VOIP 也可以 有没有什么方法可以使用 Android API 来实
  • android 网格视图从右到左放置项目

    我正在开发一个 Android 应用程序阿拉伯文版本 在其中一个界面中 我有 gridView 因此 要以正确的顺序显示项目 我必须从右到左显示 GridView 中的项目 当然是从上到下 为此 我尝试在 GridView 中添加这些属性
  • 创建后如何更新使用 AlertDialog.builder 构建的 AlertDialog 列表中的项目数组

    我使用 AlertDialog builder 创建了一个对话框 显示可以检查的多项选择列表 我设置了初始的项目名称集及其检查状态 builder setMultiChoiceItems saveTargets names saveTarg
  • android 中 y + 高度必须 <= bitmap.height()

    我想从另一个创建位图 但每次尝试都会崩溃 这是错误消息 java lang IllegalArgumentException y 高度必须 这是我尝试创作的地方 public void saveBitmap Bitmap bitmapToS
  • 从当前位置出发的移动网络行车路线

    我正在构建一个网站的移动版本 试图通过一键式链接来启动 Google 地图 并提供从用户当前位置到企业的行车路线 我让它在 iPhone 上运行良好 但在 Android 上测试时 它会查看 Current 20Location 并尝试查找
  • 加载内容时在 ImageView 中使用“动画圆圈”

    我目前在我的应用程序中使用一个列表视图 可能需要一秒钟才能显示 我目前所做的是使用列表视图的 id android empty 属性来创建 正在加载 文本
  • 如何将 ThreeJS 与 PhoneGap 一起使用?

    这个探索是非常自我描述的 我已经用一个简单的 3D 立方体进行了测试 它在浏览器中运行良好 但只在模拟器中显示空白页面 有人说 Threejs 不能与 PhoneGap 一起使用 但也有人说他们使用过并且工作正常 在 Android 中 您
  • 如何在 Android 应用程序中使用 xmlserializer 创建 xml

    您好 我正在制作一个预订应用程序 我需要在创建 xml 后将 xml 发送到服务器 如何使用创建 xmlxmlserializer创建后将其发送到服务器 http api ean com ean services rs hotel v3 l
  • 为什么 Android 中奇怪的命名约定是“AlertDialog.Builder”而不是“AlertDialogBu​​ilder”

    Why not AlertDialogBuilder builder new AlertDialogBuilder this builder setTitle foo 代替 AlertDialog Builder builder new A
  • 在较低的 SDK 上运行具有较高 SDK 的应用程序

    我想知道在 Android 3 0 中开发的应用程序是否可以在 Android 2 1 上运行 如果是这样 我该怎么做 如果我使用 3 0 中的库 例如片段 开发应用程序 它可以在 2 1 中使用吗 不会 但是 2 1 应用程序可以在 3
  • Android 媒体流错误? java.io.FileNotFoundException:没有内容提供者:http://

    我跟着this https github com Old Geek Radio blob master app src main java org oucho radio MainActivity java在 android 中播放流媒体广
  • 在 Android Studio 中运行重建项目后会发生什么?

    该文件http www jetbrains com idea help rebuilding project html search reb http www jetbrains com idea help rebuilding proje
  • 如何在Android 11中获取dir文件列表

    我想编写自己的精简版文件浏览器 文件 API 现在不适用于外部存储 该版本还提供了对范围存储的改进 这使得开发人员可以更轻松地迁移到使用此存储模型 我不明白如何使用范围存储来访问 sdcard 如果您正在寻找文件选择器体验 存储访问框架 h
  • SQlite 获取最近的位置(带有纬度和经度)

    我的 SQLite 数据库中存储有纬度和经度的数据 我想获取距我输入的参数最近的位置 例如我当前的位置 纬度 经度等 我知道这在 MySQL 中是可能的 并且我已经做了相当多的研究 SQLite 需要一个自定义外部函数来实现半正弦公式 计算
  • Android 10 通知彩色操作按钮

    I m trying to color the buttons Action in Notification like this So far this is what i m achieved so far 下面是我正在使用的代码 通知服
  • android 填充包含片段的布局

    问题是什么 我如何膨胀包含片段的布局 我不知道错误消息的含义 请帮我 谢谢 错误信息 09 01 18 44 58 698 E AndroidRuntime 20617 Caused by java lang IllegalArgument
  • 如何在ListView中标记视图?

    我有一个带有列表视图的应用程序 列表视图工作正常 当我希望列表以标记的某些行开始时 问题就开始了 如果我按下它 我可以标记一行 但是 似乎没有找到一种方法来在初始化时标记任何行 这是我的代码 listViewOfBluetooth getL
  • Volley 在第一次调用方法时返回 null

    我正在尝试使用 volley 从服务器检索数据 但是当我第一次调用此方法时 我收到服务器的响应 但该方法返回 null 如果我第二次调用它 我会得到最后的响应 public String retrieveDataFromServer Str
  • 为什么 fork 炸弹没有使 android 崩溃?

    这是最简单的叉子炸弹 我在许多 Linux 发行版上执行了它 但它们都崩溃了 但是当我在 android 终端中执行此操作时 即使授予后也没有效果超级用户权限 有什么解释为什么它没有使 Android 系统崩溃吗 一句话 ulimit Li
  • Android:防止嗅探(例如使用 CharlesProxy)SSL 流量

    我使用 Charles 检查将我的应用程序发送到 HTTPS 的数据 我在手机上安装了 Charles CA 证书 因此我能够解密每个 SSL 流量 但我发现一些应用程序无法看到 SSL 流量 我如何将这种行为实现到我自己的应用程序中 有了

随机推荐

  • 在解决方案树之间共享项目的最佳实践(MSVC 2008 和 MSVC 2010)

    我们有 50 多个项目 分为由 TFS 管理的 2 个解决方案树 版本 Visual Studio 2008 TFS RTM 9 0 21022 8 30 多个项目是 Visual Studio 2008 项目 其他项目是 Visual S
  • MATLAB:无需使用现有函数即可进行 10 倍交叉验证

    我有一个矩阵 我想在 MatLab 中你称之为结构 或数据结构 data 150x4 double labels 150x1 double 这是我的矩阵 数据看起来假设我确实使用矩阵名称加载我的文件 5 1000 3 5000 1 4000
  • 使用 jQuery 读取客户端剪贴板?

    是否可以使用 jQuery 获取 读取客户端的剪贴板 我需要获取电子表格的信息并将该信息粘贴到 jqGrid 网络网格中 好吧 根据对于这个类似的问题仅用 JavaScript 是无法完成的 这很好 因为这将是一个重大的安全风险 您需要一个
  • 获取应用程序Windows的完整目录[重复]

    这个问题在这里已经有答案了 可能的重复 获取可执行文件的路径 我有一个 C 应用程序 如何获取我的完整目录 该应用程序的 exe 文件存在的位置 编辑 操作系统 Windows Windows WCHAR path MAX PATH Get
  • MySQL SELECT 最近几天?

    我正在使用 MYSQL 我知道有一个限制命令可以显示一定数量的结果 但我想知道 MySQL 是否只能显示最近 3 天或其他内容 就是想 Update 我使用 NOW 来存储时间 用于三天前的约会 WHERE t date gt DATE A
  • 从 openjson SQL Server 2016 中的嵌套数组中删除对象

    我想删除 AttributeName Manufacturer 来自 SQL Server 2016 中的以下 json declare json nvarchar max Type G GroupBy Attributes Attribu
  • 卡住“命令 /usr/bin/codesign 失败,退出代码 1 ”错误

    在我与 xcode 3 2 5 并行安装 xcode 4 2 后 我的所有项目中都出现以下错误 当我为测试器创建临时捆绑包时 我收到错误 我该如何解决这个问题 我浏览了以下博客 但找不到任何解决方案 命令 usr bin codesign
  • Ios8 中的 UIActionsheet

    我已经在我的项目中实现了行动表 部署了目标 ios7 更少的行动表工作正常 Ios8 中的 UIActionsheet 与其他版本的 Ios 工作方式不同 我如何让它正常工作 Thanks UIActionSheet 从 iOS8 开始已弃
  • 定义 char a[5] 和 char (*a)[5] 有什么区别? [复制]

    这个问题在这里已经有答案了 我只是想确定一下C语言中 a 5 和 a 5 之间的区别 我知道 a 5 意味着数组 a 可以有五个元素 每个元素都是指针 所以 char p ptr1 char p2 ptr2 char a 5 p p2 这确
  • 在 Android 中限制离线地图上的滚动

    我从 osmdroid 那里得到了这些代码或补丁 我决定向你们寻求帮助 因为我没有足够的知识来结合这些代码来解决我的问题 离线地图上的滚动限制 我在网上搜索并修改了教程 老实说 我尝试修改这些代码 但没有发现任何进展 基本上我有一张来自 m
  • 编译并运行这个java程序

    如何编译并运行以下程序 测试1 java package A public class Test1 public int a 1 测试2 java package B import A public class Test2 public s
  • 为什么 DOM 文档实际上有效时会显示为 null?

    在我的方法之一中 我有一个 DOMorg w3c dom Document实例化并且似乎已正确初始化 因为当我使用以下命令转储它时 LOG info DOM doc getDocumentElement getTextContent 它输出
  • 将 .hpp 文件类型添加到 Visual Studio

    默认情况下 Visual Studio 仅支持在创建新类时包含 h 或 cpp 文件 不过 我知道我可以轻松选择 h 并将其重命名为 hpp 以实现我正在寻找的新扩展名 但是 我想为此列表创建一个新的模板文件类型 将 hpp 文件显示为选项
  • 独立数字正则表达式?

    我目前使用这个正则表达式 d 我可以得到2个字符串的问题 2112343 和很多 4 99 OR 4 99 和大量 2112343 我从两者都得到了这个 2112343 4 99 我只需要得到2112343 我怎样才能做到这一点 使用环视
  • imshow:标签为图像索引的任意函数

    imshow根据其列索引 x 轴 和行索引 y 轴 绘制矩阵 我希望轴标签不是索引 而是索引的任意函数 例如音调检测 imshow A aspect auto where A shape 88200 8 在 x 轴上 显示大约几个刻度 11
  • 创建一个最初为空但允许用户动态添加行的 Java 表模型

    我正在制作一个应用程序 其主要功能包含在 JTable 中 我需要使用 addRow 方法创建一个随附的表模型 用户在窗口中输入详细信息 然后单击 JButton 后 数据将被带入一个数组 该数组被传递到 addRow 方法以添加到表中 然
  • 带有 .click 方法的 jQuery 流沙插件

    我正在尝试将此 click 函数添加到我使用 jQuery 的流沙插件排序的每个图像中 li img click function var verticalCenter window height popupContent height 2
  • ShortestPath 找不到任何没有最大跳数限制的路径

    在我的图中 顶点 5 和 36 之间有一条路径 但是当我运行查询时 match n Id 5 m Id 36 p shortestPath n gt m return length p 我得到 0 行返回 当我向路径添加最大跳数限制时 我得
  • 不使用 AJAX 加载 XML 文件

    我想将静态 XML 文件加载到 HTML 中并在没有 AJAX 请求的情况下处理它 我不想发出 AJAX 请求 因为当在没有网络服务器的情况下查看该 html 文件时 这是我们的要求 Chrome 抛出以下错误并停止播放 XMLHttpRe
  • Android:如何以编程方式设置布局的大小

    作为 Android 应用程序的一部分 我正在构建一个按钮集 这些按钮是一组嵌套的 LinearLayout 的一部分 使用权重 我可以根据包含父 LinearLayout 的大小自动调整集合的大小 这个想法是 根据屏幕的像素数和密度 将包