【问题标题】:Rotationmatrix changes Layout旋转矩阵改变布局
【发布时间】:2012-03-14 08:27:39
【问题描述】:

我正在尝试对速度计进行编程,以便稍后用 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);

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

【问题讨论】:

    标签: android imageview image-rotation rotational-matrices


    【解决方案1】:

    好的,现在我已经为这个问题建立了自己的观点。当我覆盖“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);
    }
    

    【讨论】:

    • 我也有同样的问题..你能和我分享经验吗??
    • 不要使用 ImageView 的“Src”和“Background”属性。编写您自己的类,从 ImageView 扩展并使用您的背景图片设置“Src”属性。然后在我的答案中使用coden-p i postet 来绘制旋转的正面图像。
    猜你喜欢
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 2019-02-08
    • 2015-08-29
    相关资源
    最近更新 更多