2016-12-14 59 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); 
} 
} 

,并用它为您的布局