J'ai un TextView
qui avait l'habitude de montrer sur l'écran, et a fait ce que je voulais. Cependant, j'ai rationalisé un code plus tard qui le repositionne avec une touche à son parent FrameLayout
. Maintenant, le TextView
(nommé angleView
) cesse de s'afficher à l'écran, mais lorsque j'imprime ses coordonnées, cela fonctionne toujours de la même manière. Quelqu'un peut-il voir ce que je fais mal?Android - TextView ne pas afficher
Voici le code de ma onCreate()
méthode:
angleView = new TextView(getApplicationContext());
angleView.setTextColor(Color.RED);
angleView.setText("0");
angleView.setLayoutParams(new FrameLayout.LayoutParams(SCREEN_WIDTH/20, SCREEN_HEIGHT/20));
et le code de onTouchListener
du FrameLayout
:
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));
}
}
}
(les autres méthodes ne sont pas pertinentes, il fut un temps que tous les le code des méthodes individuelles était dans le onTouch
.)
Et au cas où vous vous demandez, oui, il y a s a:
preview.addView(angleView);
Merci beaucoup!
EDIT: Tout le code est à l'intérieur de la méthode onCreate()
, à l'intérieur d'un Activity
.
est-ce dans une activité? Si (oui) n'utilisez pas ApplicationContext, utilisez le contexte approprié. Ensuite, pour le tester, forcer le TextView à être dans une position simple pour exclure tous vos calculs). Ajoutez LOGS partout pour voir les nombres. –
serait-ce 'new TextView (this)'? – Jeeter
Si vous êtes dans une activité, oui. Si vous êtes dans un nouveau TextView (getActivity()) –