android – Button和GLSurfaceView

我有一个GLSurfaceView,我在其中使用OpenGL显示一些动画.

我现在想在此视图中添加一个按钮.这是如何完成的?

可以在不涉及xml布局的情况下完成吗?

解决方法

您可以手动构建视图并将其添加到活动的内容视图中.在GLSurfaceView上执行setContentView或通过 XML布局后,在Activity中的onCreate方法中,您可以执行以下操作,在左上角的GLSurfaceView顶部添加一个按钮:
Button b = new Button(this);
 b.setText("Hello World");
 this.addContentView(b,new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));

如果您希望按钮位于屏幕上的其他位置,则需要将其添加到布局中,然后将该布局添加内容视图中.要拥有位于屏幕中心的按钮,您可以执行以下操作:

LinearLayout ll = new LinearLayout(this);
Button b = new Button(this);
b.setText("hello world");
ll.addView(b);
ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
this.addContentView(ll,new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

如果你想要屏幕底部的按钮,你可以使用Gravity.BottOM而不是Gravity.CENTER_VERTICAL等.

如果您的GLSurfaceView正在拦截触摸,或者您的按钮不会接收触摸事件,请确保在触摸事件方法调用return super.onTouch ….

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...