我已经定制了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();
}
如何旋转整个视图而不仅仅是它的位图??
答案 0 :(得分:3)
我没有在这里提供所提供的答案,而是使用
机器人:clipChildren = “假”
为父ViewGroup
并且覆盖draw
代替onDraw
为我做了工作
有关详细信息,请参阅: Rotating imageview and its background without cropp
答案 1 :(得分:1)
必须检查图像视图的宽度和高度,如果高度>宽度然后在旋转时宽度必须等于高度并且与高度相同。
使宽度和高度等于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();
}