gpt4 book ai didi

java - Android - TextView 不显示

转载 作者:行者123 更新时间:2023-11-30 03:37:56 25 4
gpt4 key购买 nike

我有一个用于显示在屏幕上的 TextView,它做了我想要的。然而,我简化了一些后来的代码,通过触摸它的父 FrameLayout 来重新定位它。现在,TextView(名为 angleView)不再显示在屏幕上,但是当我打印出它的坐标时,它仍然以相同的方式工作。谁能看出我做错了什么?

这是我的 onCreate() 方法的代码:

angleView = new TextView(getApplicationContext());
angleView.setTextColor(Color.RED);
angleView.setText("0");
angleView.setLayoutParams(new FrameLayout.LayoutParams(SCREEN_WIDTH/20, SCREEN_HEIGHT/20));

以及来自 FrameLayoutonTouchListener 的代码:

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 中。

最佳答案

ApplicationContext 无法修改 UI。变化:

angleView = new TextView(getApplicationContext());

通过:

angleView = new TextView(this);

或者如果你在 fragment 中:

angleView = new TextView(getActivity());

关于java - Android - TextView 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16329085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com