我遇到了ImageView Rotation的问题。我有带箭头的IMageView(简单的png图像)我想将该图像旋转到我当前位置的目标位置。我已经尝试了很多可能性,但每次角度都不好(使用lat,通过点击目标来使用谷歌地图长)
例如我使用了在这个论坛上找到的代码:
private double angleFromCoordinate(double lat1, double long1, double lat2, double long2) {
double dLon = (long2 - long1);
double y = Math.sin(dLon) * Math.cos(lat2);
double x = Math.cos(lat1) * Math.sin(lat2) - Math.sin(lat1)
* Math.cos(lat2) * Math.cos(dLon);
double brng = Math.atan2(y, x);
brng = Math.toDegrees(brng);
brng = (brng + 360) % 360;
brng = 360 - brng;
return brng;
}
private void rotateImage(ImageView imageView, double angle) {
Matrix matrix = new Matrix();
imageView.setScaleType(ScaleType.MATRIX); // required
matrix.postRotate((float) angle, imageView.getDrawable().getBounds()
.width() / 2, imageView.getDrawable().getBounds().height() / 2);
imageView.setImageMatrix(matrix);
}
同样,旋转角度无效......
有可能吗?
感谢。
答案 0 :(得分:0)
你可以用毕达哥拉斯计算它......
首先找出坐标在哪个部分,然后使用余弦定律计算角度,并为相应部分的角度添加正确的度数。
有点脏,但它确实有效。
答案 1 :(得分:0)