5

如何使用 Open GL 在 Android 中显示可移动文本?或者是他们以任何其他方式显示文本移动而没有任何混蛋。我已经尝试过 Android 动画和选取框,但它并没有减少混蛋。我需要像新闻头条一样从右进左出的单行文本。在 Open GL 中,我应该在渲染器中做什么?

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    touchStart = new PointF();
    objs = new GLSurfaceView(this);
    sqobj = new  rendsquare();
    objs.setRenderer(sqobj);
    setContentView(objs);


    TextView editBox = new TextView(getApplicationContext());
    editBox.setTextColor(Color.BLUE);
    editBox.setEllipsize(TruncateAt.MARQUEE);
    editBox.setMarqueeRepeatLimit(-1);
    editBox.setHorizontallyScrolling(true);
    editBox.setFocusable(true);
    editBox.setFocusableInTouchMode(true);

    editBox.setText("Hello GL testing 123 hello hello h r u i am fine hello u there hello! hello !! !! !! !!");

    addContentView(editBox, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}

//另一个

public class SquaropnglActivity extends Activity {

private rendsquare sqobj;
private PointF touchStart;
private GLSurfaceView objs;
Animation mAnimation = new TranslateAnimation(300f, -300f, 0.0f, 0.0f); 
/** Called when the activity is first created. */
@Override


public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    touchStart = new PointF();
    objs = new GLSurfaceView(this);
    sqobj = new  rendsquare();
    objs.setRenderer(sqobj);
    setContentView(objs);

    mAnimation.setRepeatMode(1);
    mAnimation.setInterpolator(new DecelerateInterpolator());
    mAnimation.setDuration(3000L);
    mAnimation.setRepeatCount(-1);
    TextView editBox = new TextView(getApplicationContext());
    editBox.setTextColor(Color.BLUE);

    editBox.setAnimation(mAnimation);
    editBox.setTextSize(40);
    editBox.setLines(1);
    editBox.setText("Hello GL testing 123 hello hello h r u i am fine hello u there hello! hello !! !! !! !!");

    addContentView(editBox, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}

}

4

1 回答 1

1

如果您想以 opengl 方式进行文本渲染,请在您的 onDrawFrame(gl) 方法中编写文本绘制逻辑,并在每帧更新时更新文本位置以获得选取框动画。

对于文本渲染,请查看OpenGL Text Rendering

没有测试过。它应该适合你。最好的祝愿。

于 2013-03-19T06:55:01.620 回答