Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取手机屏幕的中心坐标_Java_Android_Coordinates - Fatal编程技术网

Java 获取手机屏幕的中心坐标

Java 获取手机屏幕的中心坐标,java,android,coordinates,Java,Android,Coordinates,有人能给我一个例子,如何获得当前显示屏幕的中心坐标吗?我希望我的对象始终相对于活动视图的中心坐标。您可以尝试使用DisplayMetrics来实现您的解决方案 下面是我如何解决这个问题的。作为背景,我有一个按钮,一旦用户将地图移动到所需的位置(十字线显示地图的中心),他们就可以点击按钮,并且地图中心会出现一个标记 findViewById(R.id.addMarker).setOnClickListener( new View.OnClickListener(){

有人能给我一个例子,如何获得当前显示屏幕的中心坐标吗?我希望我的对象始终相对于活动视图的中心坐标。

您可以尝试使用
DisplayMetrics
来实现您的解决方案
下面是我如何解决这个问题的。作为背景,我有一个按钮,一旦用户将地图移动到所需的位置(十字线显示地图的中心),他们就可以点击按钮,并且地图中心会出现一个标记

findViewById(R.id.addMarker).setOnClickListener(
            new View.OnClickListener(){
                @Override
                public  void onClick(View view) {
                    if(myMap != null){
                        double myLat = myMap.getCameraPosition().target.latitude;
                        double myLng = myMap.getCameraPosition().target.longitude;
                        LatLng markerPoint = new LatLng(myLat, myLng);
                        myMap.addMarker(new MarkerOptions().position(markerPoint)).setTitle("new marker");
                    }
                }
            }
    );

int cx=screenHeight=displaymetrics.heightPixels;
int cy=屏幕宽度=displaymetrics.widthPixels;
float finalRadius=(float)Math.sqrt(cx*cx+cy*cy)


如果物体的中心是浮动的

你想要坐标还是为什么不能使用重心?@cricket_007我愿意接受任何建议,我是android应用程序开发新手。我有一个iOS应用程序可以做到这一点,但我对android中最简单的应用程序感兴趣。假设您只想将视图居中,请参见这里的@cricket_007我真的想要坐标。我正在绕x轴移动一个物体;所以我想把它保持在屏幕中心x坐标的某个范围+/-[某个值]内。然后除以2?如果键盘是打开的,这可能不会给出完整高度。@Gupta,一个简单的解决方案是将活动设置为不使用键盘调整大小(在清单中)
findViewById(R.id.addMarker).setOnClickListener(
            new View.OnClickListener(){
                @Override
                public  void onClick(View view) {
                    if(myMap != null){
                        double myLat = myMap.getCameraPosition().target.latitude;
                        double myLng = myMap.getCameraPosition().target.longitude;
                        LatLng markerPoint = new LatLng(myLat, myLng);
                        myMap.addMarker(new MarkerOptions().position(markerPoint)).setTitle("new marker");
                    }
                }
            }
    );