围绕其中心旋转imageview而不切断其边缘

时间:2012-09-14 05:30:53

标签: android rotation imageview

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

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

如何旋转整个视图而不仅仅是它的位图??

3 个答案:

答案 0 :(得分:3)

我没有在这里提供所提供的答案,而是使用

  

机器人:clipChildren = “假”

为父ViewGroup 并且覆盖draw代替onDraw为我做了工作

有关详细信息,请参阅: Rotating imageview and its background without cropp

答案 1 :(得分:1)

  1. 必须检查图像视图的宽度和高度,如果高度>宽度然后在旋转时宽度必须等于高度并且与高度相同。

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

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