【发布时间】:2011-05-04 09:34:39
【问题描述】:
我正在尝试制作一个固定为纵向模式的视图控制器,但它有一个可以“淡入”顶部的横向版本。这意味着我需要能够拥有一个适合横向尺寸的屏幕版本,并且可以旋转 90 度(或 270 度,视情况而定)。在 iPhone 上这很容易,但我在 Android 上苦苦挣扎。我有一个自定义视图,其中包含我想要旋转的视图,但我似乎无法正确调整子视图的大小,或者让旋转正确排列。有没有更简单的方法?或者,我在这里做错了什么?
@Override
protected void onDraw(Canvas canvas) {
if (getChildCount() == 1) {
canvas.save();
canvas.rotate(90, canvas.getWidth() / 2, canvas.getHeight() / 2);
// I have no idea what my pivot point should be
View child = getChildAt(0);
Bitmap bitmap = // bitmap of child
Paint paint = new Paint();
canvas.drawBitmap(bitmap, 0, 0, paint);
canvas.restore();
}
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
if (getChildCount() == 1) {
View child = getChildAt(0);
child.layout(top, left, bottom, right);
}
}
建议实际更改视图控制器的方向是没有帮助的。我需要它保持纵向模式,以便以部分 Alpha 透明度同时显示纵向版本。
明确地说,我需要能够与旋转坐标中的视图交互,所以我需要能够按下按钮、使用滚动视图等。
【问题讨论】:
-
您能否添加一个 iphone 屏幕截图,显示您尝试复制的行为?
-
我必须给你一个文字截图。 :) 考虑以纵向模式显示的一页文本。现在考虑横向模式下的一页文本。现在将它们放在一起,您可以看到横向模式文本隐约覆盖在纵向模式文本的顶部。这就是我所追求的,而且是有原因的,它只是不涉及问题本身。 :)