Rotationmatrix更改布局

时间:2012-03-14 08:27:39

标签: android imageview image-rotation rotational-matrices

我正在尝试对速度计进行编程,以便稍后用GPS数据填充它。我有一个ImageView,它显示针(480x480)作为源,速度表显示为backgroundimage(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);

目前工作正常。 但是当针转动时,布局的大小会受到影响。我猜这是因为图片的对角线大于高度,在转动矩阵时,布局会拉伸到整个高度(然后是对角线)。所以我的车速表总是在变化。 任何想法我能做什么?

Speed-o-meter

1 个答案:

答案 0 :(得分: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);
}