1

我正在尝试对速度计进行编程,以便稍后用 GPS 数据或其他东西填充它。我有一个 ImageView,它显示针(480x480)作为源,速度计作为背景图像(480x480)。现在我尝试使用以下代码旋转指针:(一个单位 [km/h] 是 2.25° 的角度)

float angle = (float) (deltaspeed * 2.25);
matrix.postRotate(angle);
Bitmap bMapRotate = Bitmap.createBitmap(bMap, 0, 0, bMap.getWidth(), bMap.getHeight(),matrix, true);
imgNeedle.setImageBitmap(bMapRotate);

目前效果很好。但是当针转动时,布局的大小就会妥协。我猜这是因为图片的对角线大于高度,并且在转动矩阵时,布局会延伸到其全高(那时就是对角线)。所以我的车速表总是在变化。有什么想法我能做什么?

测速仪

4

1 回答 1

0

好的,现在我已经为这个问题建立了自己的观点。当我覆盖“onDraw()”方法时,可以在不拉伸其他维度的视图的情况下绘制到该视图中。

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    HEIGHT = this.getHeight();
    WIDTH = this.getWidth();
    matrix.setRotate(currAngle, WIDTH/2, HEIGHT/2);
    canvas.drawBitmap(needleBitMap, matrix, null);
}
于 2012-03-19T16:57:07.933 回答