我正在試圖製作一個視圖控制器,它是在縱向模式下修復的,但是它的橫向版本可以在頂部「淡入」。這意味着我需要能夠獲得適合風景的正確大小的屏幕版本,並且旋轉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);
}
}
不建議實際改變視圖控制器的方向。我需要它保持肖像模式,以便在部分透明度的同時顯示肖像版本。
要清楚,我需要能夠在其旋轉座標的視圖交互,所以我需要能夠按按鈕,使用滾動型等
你可以添加一個iPhone屏幕截圖,顯示你試圖複製的行爲? – 2011-04-27 14:59:49
我將不得不給你一個文本截圖。 :)考慮以縱向模式顯示的一頁文字。現在考慮橫向模式下的一頁文本。現在將這兩個圖片都畫在一起,在那裏您可以看到橫向模式文本微微疊加在縱向模式文本的頂部。這就是我所追求的,這是一個原因,它只是沒有進入問題本身。 :) – 2011-04-27 15:13:32