我有一个TextView
曾经在屏幕上显示的内容,并且做了我想做的事。但是,我简化了一些后来的代码,这些代码通过触摸它的 parent 来重新定位它FrameLayout
。现在,TextView
(named angleView
) 不再显示在屏幕上,但是当我打印出它的坐标时,它仍然以相同的方式工作。谁能看到我做错了什么?
这是我的onCreate()
方法中的代码:
angleView = new TextView(getApplicationContext());
angleView.setTextColor(Color.RED);
angleView.setText("0");
angleView.setLayoutParams(new FrameLayout.LayoutParams(SCREEN_WIDTH/20, SCREEN_HEIGHT/20));
以及来自FrameLayout
's的代码onTouchListener
:
preview.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float y = (centerPoint.getY() - event.getY() + STATUS_BAR_HEIGHT);
float x = (centerPoint.getX() - event.getX());
double angle = Math.atan(y/x);
setAngleFieldData(event, angle, y, x);
setFingerFollower(event, angle);
setYMeasure(event, y);
setXMeasure(event, x);
setTextPositions(event, angle, y, x);
Log.i("angleX", String.valueOf(angleView.getX()));
Log.i("angleY", String.valueOf(angleView.getY()));
return true;
}
private void setAngleFieldData(MotionEvent event, double angle, float y, float x){
angleView.setText(String.valueOf(angle));
angleView.setX(event.getX());
angleView.setY(event.getY());
if(isRadians) {
if(x < 0 && y >= 0){
angleView.setText(String.valueOf(2 * Math.PI + angle));
}
}
}
(其他方法无关紧要,以前各个方法的所有代码都在onTouch
.)
如果您想知道,是的,有一个:
preview.addView(angleView);
非常感谢!
编辑:所有代码都在onCreate()
方法内,在Activity
.