Android 获取 XML 布局位置

简介: Android 获取 XML 布局位置

一、案例

  • 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>
  • 效果

二、获取布局位置

  • 视图可以通过调用 getLeft()getTop()getWidth()getHeight() 来获取视图的尺寸以及坐标位置,这些方法返回的值是相对其父视图的位置。
  • 注意:这些方法获取到的位置与尺寸单位是 像素(px)
// 获取视图组件
TextView tv = findViewById(R.id.dzm);
float w = tv.getWidth();
float h = tv.getHeight();
float left = tv.getLeft();
float top = tv.getTop();
// 输出
Log.e(TAG, "width:" + w);
Log.e(TAG, "height:" + h);
Log.e(TAG, "left:" + left);
Log.e(TAG, "top:" + top);
2021-09-27 15:14:22.567 1253-1253/com.example.test E/MainActivity: width:250.0
2021-09-27 15:14:22.567 1253-1253/com.example.test E/MainActivity: height:71.0
2021-09-27 15:14:22.567 1253-1253/com.example.test E/MainActivity: left:263.0
2021-09-27 15:14:22.567 1253-1253/com.example.test E/MainActivity: top:525.0

相关文章
|
1月前
|
XML Android开发 数据安全/隐私保护
10. 【Android教程】网格布局 GridLayout
10. 【Android教程】网格布局 GridLayout
38 1
|
2月前
|
XML API PHP
Android使用XML-RPC实现blog客户端
Android使用XML-RPC实现blog客户端
24 2
|
1月前
|
Android开发
08. 【Android教程】相对布局 RelativeLayout
08. 【Android教程】相对布局 RelativeLayout
19 0
|
2月前
|
开发框架 搜索推荐 .NET
Android之ListActivity 布局与数据绑定
Android之ListActivity 布局与数据绑定
26 0
|
9天前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
47 15
|
22天前
|
XML Android开发 数据安全/隐私保护
使用RelativeLayout布局Android界面
使用RelativeLayout布局Android界面
|
28天前
|
Android开发 开发者
Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。
【6月更文挑战第26天】Android UI设计中,Theme定义了Activity的视觉风格,包括颜色、字体、窗口样式等,定义在`styles.xml`。要更改主题,首先在该文件中创建新主题,如`MyAppTheme`,覆盖所需属性。然后,在`AndroidManifest.xml`中应用主题至应用或特定Activity。运行时切换主题可通过重新设置并重启Activity实现,或使用`setTheme`和`recreate()`方法。这允许开发者定制界面并与品牌指南匹配,或提供多主题选项。
25 6
|
20天前
Android-自定义流布局标签
Android-自定义流布局标签
13 0
|
21天前
|
Android开发 索引
Android流布局实现筛选界面
Android流布局实现筛选界面
16 0
|
26天前
|
Android开发
深入了解 Android 中的 FrameLayout 布局
深入了解 Android 中的 FrameLayout 布局
11 0