从中心而不是左上方设置视图的位置

问题描述

我有一个代码初始化的图像视图。我可以通过[INFO ] [Logger ] Record log in C:\Users\Casper\.kivy\logs\kivy_20-08-26_13.txt [INFO ] [Kivy ] v1.11.1 [INFO ] [Kivy ] Installed at "C:\Users\Casper\anaconda3\envs\CasperEnv\lib\site-packages\kivy\__init__.py" [INFO ] [Python ] v3.7.7 (default,May 6 2020,11:45:54) [MSC v.1916 64 bit (AMD64)] [INFO ] [Python ] Interpreter at "C:\Users\Casper\anaconda3\envs\CasperEnv\python.exe" [INFO ] [Factory ] 184 symbols loaded [INFO ] [Image ] Providers: img_tex,img_dds,img_sdl2,img_pil,img_gif (img_ffpyplayer ignored) [INFO ] [Text ] Provider: sdl2 [INFO ] [Window ] Provider: sdl2 [INFO ] [GL ] Using the "OpenGL" graphics system [INFO ] [GL ] GLEW initialization succeeded [INFO ] [GL ] Backend used <glew> [INFO ] [GL ] OpenGL version <b'4.5.0 - Build 25.20.100.6373'> [INFO ] [GL ] OpenGL vendor <b'Intel'> [INFO ] [GL ] OpenGL renderer <b'Intel(R) HD Graphics 520'> [INFO ] [GL ] OpenGL parsed version: 4,5 [INFO ] [GL ] Shading version <b'4.50 - Build 25.20.100.6373'> [INFO ] [GL ] Texture max size <16384> [INFO ] [GL ] Texture max units <32> [INFO ] [Window ] auto add sdl2 input provider [INFO ] [Window ] virtual keyboard not allowed,single mode,not docked [INFO ] [Base ] Start application main loop [INFO ] [GL ] NPOT texture support is available [INFO ] [Base ] Leaving application in progress... [INFO ] [WindowSDL ] exiting mainloop and closing. setX()设置位置。方法。据我了解,这些坐标设置在图像的左上角。但是,我想根据图像的中心设置位置。这可能吗?

注意:我是Android开发的新手

解决方法

否,您无法根据中心设置位置。

但是,您可以通过分别减去宽度和高度的一半来计算出左上角的位置,以使中心位于特定的x,y位置。

您可以致电getWidth()getHeight()来获取它们。

因此,您可以执行以下操作:

fun setViewPositionAccordingToCenter(view: View,x: Int,y: Int){

    view.setX(x - (view.getWidth()/2))
    view.setY(y - (view.getHeight()/2))
}