我有一個TextView
,用於在屏幕上顯示,並做了我想要的。不過,我精簡了一些後來的代碼,通過觸摸它的父代FrameLayout
重新定位它。現在,TextView
(名爲angleView
)停止在屏幕上顯示,但是當我打印出它的座標時,它仍然以相同的方式工作。任何人都可以看到我做錯了什麼?Android - TextView不顯示
這裏是從我onCreate()
方法的代碼:
angleView = new TextView(getApplicationContext());
angleView.setTextColor(Color.RED);
angleView.setText("0");
angleView.setLayoutParams(new FrameLayout.LayoutParams(SCREEN_WIDTH/20, SCREEN_HEIGHT/20));
和從代碼的FrameLayout
的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
中。)
而且如果你想知道,是的,那裏我s:
preview.addView(angleView);
非常感謝!
編輯:所有的代碼是在onCreate()
方法,內Activity
。
是這樣的在一個Activity裏面?如果(是)不使用ApplicationContext,請使用適當的上下文。然後,爲了測試,強制TextView處於一個簡單的位置,以排除所有數學)。隨處添加LOGS以查看數字。 – 2013-05-02 01:46:10
它會是'新的TextView(this)'? – Jeeter 2013-05-02 01:47:14
如果你在一個活動,是的。如果你還在一個新的TextView(getActivity()) – 2013-05-02 01:49:04