2016-12-14 98 views
0

我必須顛倒視圖而不移動系統菜單。所以,我做的:旋轉視圖的onTouch錯誤座標

getWindow().getDecorView().getRootView().setRotation(180); 

但是,所有子按鈕獲得onTouch事件沒有被觸摸時,他們,但是當我接觸到的地區,他們將沒有旋轉。 我該如何解決這個問題?

+0

你需要觸摸事件與矩陣以及翻譯因爲您的代碼只是旋轉根視圖的結果圖像,而不是根視圖本身。 –

+0

嗯,我可能拼錯了這個問題。 「onTouch」按鈕是從錯誤的地方觸發的。也就是說,我可以將onTouch視爲視圖,但是當我觸摸「原始」位置時它甚至不會播放...... –

+0

然後,我認爲您需要在整個佈局中放置一些視圖,並且它應該翻譯觸摸事件。或者用父佈局的intersectTouchEvents做些事情 –

回答

0

瞭解決方案,無需轉換矩陣,這樣的...只是創建一個新的佈局類是這樣的:

public class RotatableView extends FrameLayout { 

public RotatableView(Context context) { 
    this(context, null); 
} 

public RotatableView(Context context, AttributeSet attributeSet) { 
    super(context, attributeSet); 
    setUpsideDown(); 
} 

private void setUpsideDown() { 
    this.setRotation(180); 
} 
} 

,並用它爲您的佈局