首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android屏幕坐标系:如何设置Android屏幕左下方的(0,0)作为xy平面的第一个四分之一

首先,要明确的是,Android 屏幕坐标系与 Windows 桌面坐标系有所不同。在 Android 屏幕坐标系中,左上角的点 (0,0) 通常表示屏幕的左上角,而右下角的点 (screenWidth-1, screenHeight-1) 通常表示屏幕的右下角。

在 Android 屏幕坐标系中,如何设置左上角 (0,0) 作为 xy 平面的第一个四分之一,可以通过以下步骤实现:

  1. 获取屏幕的宽度和高度。例如:
代码语言:java
复制
int screenWidth = getResources().getDisplayMetrics().widthPixels;
int screenHeight = getResources().getDisplayMetrics().heightPixels;
  1. 计算 xy 平面的第一个四分之一 (0,0) 到屏幕左上角 (0,0) 的距离。例如:
代码语言:java
复制
float distanceToTop = 0;
float distanceToBottom = screenHeight - 1;
float distanceToLeft = 0;
float distanceToRight = screenWidth - 1;
  1. 设置左上角 (0,0) 作为 xy 平面的第一个四分之一,可以通过设置布局参数和坐标来实现。例如:
代码语言:xml
复制
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="0dp">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/your_image"
        android:layout_centerInParent="true"/>

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Your text"
        android:layout_below="@id/imageView"
        android:layout_centerInParent="true"/>

</RelativeLayout>

在上述示例中,android:layout_centerInParent="true" 属性将两个视图(ImageViewTextView)居中显示在屏幕中。android:layout_below="@id/imageView" 属性将 TextView 视图放在 ImageView 视图的下方,并将它们放在同一个垂直轴上。

注意:在 Android 中,坐标系的方向是 (x,y),而在 iOS 中,坐标系的方向是 (x,y)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android应用坐标系统全面详解

很多人可能不屑一顾Android坐标系,但是如果你想彻底学会自定义控件,我想说了解android各种坐标系及一些API坐标含义绝对算一个小而不可忽视技能;所谓Android自定义View那几大主要...2-1 Android屏幕区域划分 我们先看一副图来了解一下Android屏幕区域划分如下: ? Android屏幕区域划分 通过上图我们可以很直观看到Android对于屏幕划分定义。...2-2 Android View绝对相对坐标系 上面我们分析了Android屏幕划分,可以发现我们平时开发重点其实都在关注View布局区域,那么下面我们就来细说一下View区域相关各种坐标系。...getGlobalVisibleRect() (30, 100 - 440, 200) (30, 250 - 440, 720) 获取View在屏幕绝对坐标系可视区域,坐标以屏幕左上角为原点(0,0...),另一个点为可见区域右下角相对屏幕原点(0,0)点坐标。

1.3K10
  • Android自定义控件坐标系解析

    自定义控件要想彻底把握,掌握Android各种坐标系及一些API坐标含义毫无疑问是不可忽视技能,对于控件摆放位置、触摸点、控件绘制等都离不开坐标系,所以学习自定义控件之前我们就先来谈一下Android...一、Android屏幕坐标系和数学坐标系区别 (1)、在数学坐标系中以xy交点为坐标原点,x轴向右为正方向,y轴向上为正方向,这对于童鞋们来说已经再熟悉不过了,如图: ?...二、Android屏幕区域划分 Android屏幕区域主要划分为五个区域分别为:状态栏区域、ActionBar区域、View布局区域、应用程序App区域、屏幕区域,相互之间又存在嵌套关系。...三、Android坐标系分类 上面我们分析了Android屏幕区域划分,接着我们分析一下与区域相关Android坐标系,在Android坐标系中可以分为:屏幕坐标系,视图坐标系。...(2)、视图坐标系 视图坐标系在View绘制过程中,绘制内容将以坐标系作为参考,最后确定绘制内容在View里面的位置。 ?

    76330

    大前端开发中“树” (下)

    作用是,CALayer 在做隐式动画时,CoreAnimation 就需要在设置一次新值和新值生效之间,对屏幕图层进行重新组织。...这意味着 CALayer 除了 “真实” 值(视图描述中设置值)之外,必须要知道当前显示在屏幕属性值,而每个图层属性显示值都被存储在呈现图层中。...使用这个树状结构,渲染服务对动画每一帧做出如下工作: 对所有的图层属性计算中间值,设置 OpenGL 几何形状(纹理化三角形)来执行渲染 在屏幕上渲染可见三角形 五、Flutter 中树 Flutter...以动画系统为例,iOS 视图系统把动画配置作为视图树描述一部分,直到渲染时才计算实际值,从而提升动画性能;而 Android 渲染过程一般依靠视图树变化实现动画,相比之下增加了处理环节。...这在一定程度上反映了 iOS 和 Android 设计思路差异,或许也可以作为早期 iOS 动画性能优于 Android 佐证。

    1.9K30

    Android 音视频开发打怪升级:OpenGL渲染视频画面篇】二、使用OpenGL渲染视频画面

    所以设置相机位置,是相对与世界坐标原点来说。 相机位置 OpenGL 世界坐标系是一个右手坐标系,正 X 轴在右手边,正 Y 轴朝上,正 Z 轴穿过屏幕朝向你。 ?...比如可以将相机朝向设置为(0,1,0),这个时候,相机位于(0,0,5),向上方向为Y轴,这时候,相机正好看到XY组成平面,是画面的正面。...矩阵乘法 矩阵乘法和普通数字乘法是不一样,用第一个矩阵行乘以第二个矩阵列,然后每个乘积相加,作为结果第一行第一列,即: 1x1 + 1x0 + 1x0 = 1 其他以此类推。...如果不进行缩放处理情况下,画面被拉伸铺满,画面的高度应该是1920,所以正确缩放倍数应该是1920/540=3.555556(不能除尽) 接下来看看如何设置left、right、top、bottom...相机向上方向为Y轴,面向xy平面。 这样,如果顶点坐标的z轴仍然为0,那么要使画面被包含在裁剪空间中,就必须重新设置近平面和远平面的位置。

    2.2K30

    开源计划之--Android绘图库--LogicCanvas

    HTML5感觉和Androidcanvas挺相似,所以考虑移植过来。...对坐标系统进行一定优化 Pos向量形式使用有点庞大,新写一篇文章讲述,详见:Android绘图之和我一起画箭头 2018年9月6号更新:由V0.01升级到V0.03 Painter采用单例模式...(coo)、旋转(rot)、缩放(sx,sy)屏幕适配dp单位(dp) 属性 默认值 简介 备注 p Pos(0,0) 图形距画布左顶点偏移量 rot 0 旋转角度 弧度制- sx 0 x缩放 -...填充样式 - dir 逆时针方向 方向 - 1.位移: p 参数类型:Pos 注:为了和数学更好契合,采用笛卡尔坐标系(上右正),默认屏幕左上角(0,0)点 为了明显,使用工具栏绘制网格参考...再次强调:默认使用0,0为原点笛卡尔坐标系 1.单线条 painter.draw( new ShapeLine() .ps(pos.clone(

    1.3K30

    OpenGL 学了那么久了,glViewport 你真的会用吗?

    y:视口左下角Y坐标。 width:视口宽度。 height:视口高度。 glViewport函数作用是将正投影坐标(OpenGL默认坐标系)映射到屏幕上实际显示区域。...它将正投影坐标系点映射到屏幕上指定大小矩形区域内。 在使用OpenGL进行绘图时,我们通常需要先通过glViewport来设置视口,将整个窗口或窗口一部分作为渲染区域。...这样,我们可以指定绘制内容在窗口哪个位置显示出来。 正常显示时参数 这里传入参数为 glViewport(0,0,width,height),此时数据可以正常渲染到屏幕上。...只改变width参数 这里传入参数为 glViewport(0,0,width/2,height),此时数据和正常时相比宽度变成了之前一半。 由此可以说明右侧为x正方向。...起始位置为屏幕正中间(width/2,height/2),宽高分别为:width/2,height/2。 可以正常绘制,没有超出屏幕范围,且大小为正常渲染四分之一

    2.7K10

    3D打印机marlin固件自动调设置和使用及方向及坐标系设置

    调试方法,先将Z偏移量设置为一个较大负数,如-10,然后机器全部归零,当Z轴归零过程中,探针触发到自动调传感器,此时机器认为Z轴高度为负Z偏移量(示例为10mm),手动移轴Z轴,当喷嘴接触到平台...X和Y轴移动速度(mm / m) #define XY_PROBE_SPEED 2500 #define XY_PROBE_SPEED 2500 f) 设置探测几遍 2或者3 #define...使用方法 1)下载好固件后,使用屏幕进行自动调探测,探测完使用屏幕保存探测数据 运行以下Gcode进行调 G28 ;move X/Y Z to min endstops G29; 自...就是高了,(0,0)代表左下角 横坐标是Y 5进阶设置 #define Z_CLEARANCE_DEPLOY_PROBE 5 // Z Clearance for Deploy/Stow #define...,单纯为了美观把所有的线都藏在X轴后面,造成坐标系跟官方默认并不一致,后来用切片软件镜像修复

    5.9K22

    让你一目了然!—PopupWindow

    上图是 PopupWindow 类继承关系,可以看出 PopupWindow并不是继承自 View,所以它当然不是以 View作为结尾了~ 常用构造 public PopupWindow(View...LayoutParams.WRAP_CONTENTLayoutParams.MATCH_PARENT 3.使用 显示Popupwindow 显示PopupWindow可以分为两种方式: 附着某个控件 showAsDropDown 设置屏幕坐标...看有点奇怪,其实是只传一个参数,没有传入位置信息,默认显示在左下方。...设置屏幕坐标的方式(相对于当前窗口) ? 看上图,使用 showAtLocaton() 方法显示 PopupWindow ,运行后看一看结果: ?...上面我们代码对 x, y 值都进行设置,但只有 y 轴位置有效果,说明当 PopupWindow 大小,或者位置超出屏幕,无论设置 x, y 是多少都不会起作用。

    1.2K50

    Unity基础(10)-坐标系

    ) GUI界面的坐标系 2-1 世界坐标系 世界坐标系:用来描述游戏场景内所有物体位置和方向基准,Unity场景中创建物体都是以全局坐标系坐标原点(0,0,0)来确定各自位置。...transform.LocalPosition可以获得该局部坐标 2-3 屏幕坐标系 屏幕坐标系:以像素为单位,左下角是(0,0),右上角为(screen.width, screen.height),Z...{ screenPos = Input.mousePosition; } 注意点 相机如何渲染物体 摄像机对游戏世界渲染范围是一个截头体,渲染边界是一个矩形,用与near clippingplane...或者far clippingplane平行平面截取这个截头体,可以获得无数个平行矩形面,也就是我们看到屏幕矩形。...GUI界面坐标系:这个坐标系屏幕坐标系相似,不同是该坐标系屏幕左上角为(0,0)点,右下角为(Screen.width,Screen.height)。

    4.9K20

    【Cocos2d-x游戏开发】浅谈游戏中坐标系

    1.UI坐标系  IOS/Android/Windows SDK中通用UI坐标系默认起点坐标(x=0,y=0)位于坐上角,x轴从屏幕最左边开始,由左向右逐渐增加;Y轴坐标从屏幕最上方开始,由上至下逐渐增加...最后在绘制屏幕时候,Cocos2d-x会把这些元素本地节点坐标映射成世界坐标系坐标。世界坐标系和OpenGL坐标系一致,原点默认在屏幕左下角,X轴向右,Y轴向上。...从Cocos2d-x 3.1版本开始,使用Vec2来代替Point,而Point作为typedef存在,在Vec2.h源代码中是这样定义: typedef Vec2 Point; 6.锚点   锚点是...锚点值范围从(0,0)到(1,1)之间,默认情况下,锚点位于纹理图像几何中心,即(0.5,0.5),该值表示并不是一个像素点,而是一个乘数因子。...但是如果将锚点设置在精灵图像左下角(0,0),并将精灵图像位置设置为(50,50),那么此时应该是精灵图像左下角位于(50,50)位置,而不是精灵图像几何中心处在(50,50)位置了。

    1.3K40

    Carson带你学Android:自定义View Path类使用教程

    基础 2.1 开放路径与闭合路径区别 2.2 如何判断点在图形内还是图形外 判断方法分为奇偶规则 & 非零环绕规则,具体介绍如下: 举例说明1:(奇偶规则) 由上图知: p1发出射线与图形相交...第一组:设置路径 采用moveTo()、setLastPoint()、lineTo()、close()组合 // 设置当前点位置 // 后面的路径会从该点开始画 moveTo(float...radius, Path.Direction dir) // 加入椭圆形路径 // 其中,参数oval作为椭圆外切矩形区域 addOval(RectF oval, Path.Direction...,实例如下: // 轨迹1 // 将Canvas坐标系移到屏幕正中 canvas.translate(400,500); //...// 画出路径 canvas.drawPath(path,paint); // 具体请看下图 // 轨迹2 // 将Canvas坐标系移到屏幕正中

    69520

    学Python真的有用,看它怎么控制你手机

    它会自动与Android Studio捆绑在一起,因此,如果已经安装了Android Studio那就不用担心。否则,可以转到官方文档,并且在页面顶部应该有有关如何安装它说明。...为了帮助解决这些问题,我们可以在开发人员选项中激活指针位置设置。激活后,无论您在屏幕何处触摸,都可以看到该点坐标显示在顶部。...手机屏幕坐标系工作方式如下: 显示屏左上角就是x和y坐标点(0,0),右下角坐标是x和y最大可能值。现在我们知道了坐标系工作原理,我们需要检查一下可以运行不同命令。...首先,我们需要导入我们库并创建一个connect函数以连接到我们设备: 你可以看到connect函数与前面的如何连接到设备示例相同,除了这里我们返回设备和客户端对象以供以后使用。...正如我之前说过,这只是复制你通常会做事情,因此,如果首先手动进行操作并写下步骤,则思考如何做事情是最好。 相信和我学Python童鞋们都能理解上面的代码吧? 5.

    1.5K20

    Android 音视频开发打怪升级:OpenGL渲染视频画面篇】一、初步了解OpenGL ES

    OpenGL ES纹理坐标 纹理坐标,其实就是屏幕坐标,标准纹理坐标原点是在屏幕左下方,而Android系统坐标系原点是在左上方。这是Android使用OpenGL需要注意一个地方。...注:坐标系xy轴方向很重要,决定了如何做顶点坐标和纹理坐标映射。 那么,这两个坐标系究竟有什么关系呢? 世界坐标,是用于显示坐标,即像素点应该显示在哪个位置由世界坐标决定。...纹理坐标顺序 由于绘制是三角形,所以两个坐标如下(这里只设置xy轴坐标,忽略z轴坐标,每两个数据构成一个坐标点): //顶点坐标 private val mVertexCoors = floatArrayOf...) GLES20.glEnableVertexAttribArray(mTexturePosHandler) //设置着色器参数, 第二个参数表示一个顶点包含数据数量,这里为xy,所以为...通过以上步骤,就可以在屏幕上看到一个红色三角形了。 ? 三角形 可能有人就有疑问了:绘制三角形时候只是直接设置了像素点颜色值,并没有用到纹理,纹理到底有什么用呢?

    1.9K51

    iOS界面布局核心以及TangramKit介绍

    这套机制通过设置视图之间位置和尺寸约束以及对屏幕尺寸进行分类方式来完成界面的布局和屏幕适配工作。...第一种以屏幕坐标系作为参照来确定位置称为绝对位置,也就是以屏幕左上角作为原点,每个视图位置都是距离屏幕左上角原点一个偏移值。...我们知道在左手坐标系里面,一个视图内左上角方位坐标值就是原点坐标值,默认情况下原点坐标值是(0,0)。但是这个定义不是一成不变,也就是说原点坐标值不一定是(0,0)。...正是提供这些多样设置方式,我们就可以在不同场景中使用不同设置来完成各种复杂界面的布局。 Android布局体系 屏幕尺寸、PPI、DPI 布局框架结构 layout布局文件。...定位值如果是以兄弟视图作为参考系坐标那么视图位置就叫做间距,间距描述是视图距离兄弟视图距离(垂直线性布局中虽然第一个子视图顶部是距离父视图但是我们仍然称为间距)。

    2.2K30

    Carson带你学Android:自定义View Canvas类使用教程

    ); 下面我将用一个实例去表示如何去使用: 实例介绍 将坐标系移动到(450,650);绘制一个圆,将上述Canvas操作录制下来,并在某个时刻重新绘制出来。...:位移是基于当前位置移动,而不是每次都是基于屏幕左上角(0,0)点移动 b....// 实例:画两个对比图 // 相同:都有两个矩形,第1个= 正常大小,第2个 = 放大1.5倍 // 不同点:第1个缩放中心在(0,0),第2个在(px,py) // 第一个图 // 设置矩形大小...旋转(rotate) 注意:角度增加方向为顺时针(区别于数学坐标系) // 方法1 // 以原点(0,0)为中心旋转 degrees 度 public final void rotate(float...// 为了方便观察,我将坐标系移到屏幕中央 canvas.translate(300, 500); //原来画布设置为灰色 canvas.drawColor

    2.4K10

    OpenGL ES + MediaPlayer 渲染播放视频+滤镜效果

    和图片不同是,视频需要不断地刷新,每当有新一帧来时,我们都应该更新纹理,然后重新绘制。用 OpenGL 播放视频就是把视频贴到屏幕上。...我们要用SurfaceTexture 创建一个Surface,然后将这个Surface作为MediaPlayer输出表面。...surfaceTexture.updateTexImage();//获取新数据 surfaceTexture.getTransformMatrix(mSTMatrix);//让新纹理和纹理坐标系能够正确对应...updateSurface = false; } } 在有新数据时,用updateTexImage来更新纹理,这个getTransformMatrix目的,是让新纹理和纹理坐标系能够正确对应...surfaceTexture.updateTexImage();//获取新数据 surfaceTexture.getTransformMatrix(mSTMatrix);//让新纹理和纹理坐标系能够正确对应

    2K21
    领券