6

我已经自定义了 imageview,但它只是旋转它的位图而不是整个视图。我不想使用动画,因为我也在拖动 imageview,所以移动动画 imageivew 结果很奇怪,所以坚持onDraw/draw,加上覆盖 draw 没什么特别的。

        @Override
        protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        canvas.save();
        canvas.rotate(rotationAngle, rotationW, rotationH);
        super.onDraw(canvas);
        canvas.restore();
        }    

我怎样才能旋转整个视图而不仅仅是它的位图?

4

3 回答 3

4

我没有在这里得到提供的答案,但使用

机器人:clipChildren =“假”

为父母ViewGroup 和压倒一切draw,而不是onDraw为我做这项工作

欲了解更多信息,请参阅: Rotating imageview and its background without cropp

于 2014-07-27T21:32:09.220 回答
1
  1. 必须检查图像视图的宽度和高度,如果高度>宽度,那么在旋转时宽度必须等于高度并且与高度相同。

  2. 使宽度和高度等于fill_parent,然后通过矩阵旋转/平移/缩放。

于 2012-10-19T04:05:37.450 回答
0

从 API 11 开始,每个视图都可以使用以下方法:

.setRotation(float angle);

http://developer.android.com/reference/android/view/View.html#attr_android:rotation


在 API 11 之前,您可以向视图的主要元素添加旋转:

@Override
protected void onDraw(Canvas c) {
  c.save();
  c.rotate(...);
  super.onDraw(c);
  c.restore();
}
于 2012-09-14T05:47:44.827 回答