android获取指定窗口大小,在Android中获取OpenGL窗口的大小

我正在尝试在OpenGL ES(Android),2D中绘制一个正方形并覆盖整个屏幕.

目前,我只是在尝试和尝试错误,但是我确信必须有一种更好的方法来获取屏幕的尺寸.以下是我目前如何初始化Square的方法:

float[] square = new float[] { -0.1f, -0.1f, 0.0f,

0.1f, -0.1f, 0.0f,

-0.1f, 0.1f, 0.0f,

0.1f, 0.1f, 0.0f };

理想情况下,x轴上的0.1f是窗口的宽度,y上的0.1f是窗口的高度.任何帮助将不胜感激.

干杯

解决方法:

我认为屏幕的尺寸取决于您的投影.对于2D图形,大多数人使用glOrtho定义平行投影.您可以在此处指定尺寸.

另外,您可以指定更大的尺寸并在剪切范围内放置多个2D纹理,或者可以将单个顶点的顶点映射到指定投影的角上.该单个纹理将包含您的整个显示内容.

标签:opengl-es,android

来源: https://codeday.me/bug/20191107/2003733.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 Android OpenGL,您需要了解以下几个方面: 1. OpenGL ES:Android 平台上使用的是 OpenGL ES(Embedded Systems)版本,这是一种专为嵌入式设备和移动设备设计的 OpenGL 版本。 2. GLSurfaceView:在 Android 使用 OpenGL ES,您需要使用 GLSurfaceView,这是一个专门用于绘制 OpenGL 图形的 View。 3. GLSurfaceView.Renderer:您需要实现 GLSurfaceView.Renderer 接口,在其回调方法处理 OpenGL 图形绘制逻辑。 下面是一个简单的 Android OpenGL 应用的示例: 1. 创建一个新的 Android 项目。 2. 在项目创建一个 GLSurfaceView。 ```java public class MyGLSurfaceView extends GLSurfaceView { public MyGLSurfaceView(Context context) { super(context); } } ``` 3. 实现 GLSurfaceView.Renderer 接口。 ```java public class MyGLRenderer implements GLSurfaceView.Renderer { @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { //初始化 OpenGL 环境 } @Override public void onSurfaceChanged(GL10 gl, int width, int height) { //处理窗口大小变化 } @Override public void onDrawFrame(GL10 gl) { //绘制 OpenGL 图形 } } ``` 4. 在 MyGLSurfaceView 设置 Renderer。 ```java public class MyGLSurfaceView extends GLSurfaceView { public MyGLSurfaceView(Context context) { super(context); setRenderer(new MyGLRenderer()); } } ``` 5. 在 Activity 使用 MyGLSurfaceView。 ```java public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new MyGLSurfaceView(this)); } } ``` 以上就是一个简单的 Android OpenGL 应用的示例。您可以通过实现 GLSurfaceView.Renderer 接口,在其回调方法处理 OpenGL 图形绘制逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值