2011-12-05 98 views
1

我想要旋轉Android視圖的API級別8.例如,我想旋轉90度的EditText,以便當用戶將文本輸入到左對齊的EditText中時,第一個字符位於底部(旋轉90度),隨後的字符向上輸入。旋轉Android視圖

我第一次嘗試使用持續時間爲0的動畫,但仍看到旋轉的字段。不幸的是,這是一個非首發。如果我能找到完全隱藏動畫的方法,這種方法看起來是最簡單的。

然後,我試着在onDraw中旋轉畫布,這對於平方視圖非常有用,但對於不是方形(並且我不控制EditText的尺寸)的方法來說不是那麼好。我嘗試了各種剪裁和翻譯畫布的嘗試,但是雖然我可以在文本輸入開始時使光標進入視圖,但是一旦有人開始輸入更多內容(通常內容會從視圖中消失),它會發生奇怪的事情, 。

我也嘗試在onMeasure中製作視圖方塊,然後在onDraw中旋轉畫布,然後將View尺寸放回到隨後的onMeasure中。前兩步很好。但是第三步產生了與上述類似的結果:事情看起來很好,直到用戶開始輸入更多文本時,字段文本做了奇怪的事情(通常消失)。

有沒有人能夠成功地旋轉一個非正方形的Android視圖(例如EditText)而沒有動畫,並且API等級爲8或更低?

回答

0

我花了相當多的時間試圖旋轉完全在API級別8的視圖,我認爲它是不可能的,使其正常工作。僅供參考,雖然在View類中有setRotation(int angle)方法,但它在Android 3.2上無法正常工作。例如,這對於VideoView來說將無法正常工作。

P.S當時似乎我已經設法使旋轉的東西除了VideoView以外的任何其他工作。你是否覆蓋了onTouchEvent方法?如果您還沒有看到該視圖,將不會收到觸摸事件,因爲旋轉畫布將使視圖繪製旋轉,但仍然會在其舊區域中接收觸摸事件。您必須手動將旋轉矩陣應用於觸摸事件座標,以便將它們抵消到適當的位置。