java - Projection.toPixels 空指针...有帮助吗?

标签 java android google-maps

我有以下代码:

if(prevPoint != null){
            Log.i("tracking class", "prevPoint:  "+ prevPoint);
          Point pointb = null;
          Projection projection2 = mapView.getProjection();
          projection2.toPixels(prevPoint, pointb);

          Log.i("tracking class", "Pointb:  "+ pointb);
               Paint paint;
                 paint = new Paint();
                 paint.setColor(Color.BLUE);
                 paint.setAntiAlias(true);
                 paint.setStyle(Style.STROKE);
                 paint.setStrokeWidth(2);
    Log.i("tracking class", "Point x:  "+ point.x);
    Log.i("tracking class", "Point y:  "+ point.y);
    Log.i("tracking class", "Pointb x:  "+ pointb.x);
    Log.i("tracking class", "Pointb y:  "+ pointb.y);


            //canvas.drawLine(pointb.x, pointb.y, point.x, point.y, paint);
        }

日志返回:

10-19 08:55:25.505: INFO/tracking class(29970): prevPoint:  41310173,-105558377
10-19 08:55:25.505: INFO/tracking class(29970): Pointb:  null

有什么想法为什么 Pointb 返回 null 吗?

最佳答案

您是否希望 Java 使用引用传递?事实并非如此。尽管引用类型的任何表达式的值都是引用,但它到处都使用按值传递。

调用

projection2.toPixels(prevPoint, pointb);

可能无法更改pointb的值。您需要使用赋值运算符,例如

Point pointb = projection2.toPixels(prevPoint, null);

我相信 toPixels 会更改参数引用的现有对象的内容(如果参数非空)...但它不可能改变引用新对象的变量值。

关于java - Projection.toPixels 空指针...有帮助吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7823522/

相关文章:

java - 如何实现InternalFrameListener?

Android 在点击时删除通知(由 mNotifyBuilder 创建)

javascript - 如何在谷歌地图上绘制数百万个点?

java - Activity 中的构造函数未定义

java - 野蝇spring项目部署

java - Android应用程序无法将数据写入Firebase数据库

google-maps - 谷歌地图 panTo 和 setCenter

google-maps - 使用 Google Map API 访问学校附近

java - addActionListener 不起作用

android - Gradle:如何在控制台中显示 androidTest 结果?