Android XML 布局基础(三)LayoutParams 布局参数

简介: Android XML 布局基础(三)LayoutParams 布局参数

一、简介

二、xml代码 写法

  • layout_xxx 布局属性:
<TextView
    android:layout_width="100dp"
    android:layout_height="200dp"
    android:layout_marginLeft="50dp"
    android:layout_marginTop="10dp"
    android:text="Hello world!"
    android:textSize="10sp" />
  • ViewGroup 类会实现一个扩展 ViewGroup.Layoutparams 的嵌套类,里面包含一些设置视图 view 的尺寸和位置的属性。
// 创建视图
TextView tv = new TextView(this);
// 创建布局模块(可以认为它才是根视图,只有在它身上才能生效布局参数)
LinearLayout layout = new LinearLayout(this);
// 获取视图中的布局参数对象
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)tv.getLayoutParams();
// 配置布局属性
params.leftMargin = 30; // 左边距
params.topMargin = 30;  // 上边距
params.width = 100;     // 宽
params.height = 200;    // 高
// 将配置好的布局参数设置到视图中
tv.setLayoutParams(params);
// 将视图模块添加到布局模块中
layout.addView(tv);

三、属性

  • 一般而言,建议不要使用绝对单位(如像素 px)来指定布局宽度和高度,最好是使用相对测量单位(如与密度无关的像素单位 dpwrap_contentmatch_parent),有利于确保应用在各类尺寸的设备屏幕上正确显示。
  • wrap_content:视图将其大小调整为内容所需要的尺寸。
  • match_parent:视图尽可能采用其父视图组所允许的最大尺寸。

四、案例

  • xml 布局代码
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <!-- 由于最外层不是 Layout,则这里为根布局 -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffc">
        <!-- 再添加一个内部视图布局 -->
        <LinearLayout
            android:layout_marginTop="200dp"
            android:layout_marginLeft="70dp"
            android:layout_width="300dp"
            android:layout_height="300dp"
            android:background="#fcf">
            <!-- 添加视图组件 -->
            <TextView
                android:id="@+id/dzm"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="100dp"
                android:layout_marginTop="200dp"
                android:text="DZM TEST"
                android:textSize="20sp" />
        </LinearLayout>
    </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
  • 效果


相关文章
|
4月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
10月前
|
XML 编解码 搜索推荐
XML 布局小技巧
【10月更文挑战第24天】通过掌握这些 XML 布局小技巧,我们可以更轻松地设计出高质量的用户界面,提升用户体验。在实际应用中,要根据具体项目的需求和特点,灵活运用这些技巧,不断探索和创新,打造出独具特色的界面布局。
183 1
|
6月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
165 15
|
移动开发 监控 前端开发
构建高效Android应用:从优化布局到提升性能
【7月更文挑战第60天】在移动开发领域,一个流畅且响应迅速的应用程序是用户留存的关键。针对Android平台,开发者面临的挑战包括多样化的设备兼容性和性能优化。本文将深入探讨如何通过改进布局设计、内存管理和多线程处理来构建高效的Android应用。我们将剖析布局优化的细节,并讨论最新的Android性能提升策略,以帮助开发者创建更快速、更流畅的用户体验。
159 10
|
11月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
11月前
|
Java Shell Linux
从 am start 的 --user 参数说到 Android 多用户
am start 命令有时并不会乖乖如我们所愿,这时候我们需要知对策并知其所以然。
278 16
|
11月前
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
594 0
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
292 1
|
存储 Java 数据库
基于全志H713 Android 11:给TvSettings添加default.xml默认值
本文介绍了在全志H713 Android 11平台上为TvSettings应用添加HDMI CEC功能的默认设置值的方法,通过修改SettingsProvider的源码和配置文件来实现默认值的设置,并提供了详细的步骤和测试结果。
454 0
基于全志H713 Android 11:给TvSettings添加default.xml默认值
|
XML Android开发 UED
"掌握安卓开发新境界:深度解析AndroidManifest.xml中的Intent-filter配置,让你的App轻松响应scheme_url,开启无限交互可能!"
【8月更文挑战第2天】在安卓开发中,scheme_url 通过在`AndroidManifest.xml`中配置`Intent-filter`,使应用能响应特定URL启动或执行操作。基本配置下,应用可通过定义特定URL模式的`Intent-filter`响应相应链接。
313 12