我正在尝试对速度计进行编程,以便稍后用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);
目前工作正常。 但是当针转动时,布局的大小会受到影响。我猜这是因为图片的对角线大于高度,在转动矩阵时,布局会拉伸到整个高度(然后是对角线)。所以我的车速表总是在变化。 任何想法我能做什么?
答案 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);
}