实际上我有一个项目,我正在使用GLSurfaceView。此时,该组件作为主控制器放置在整个屏幕上。在这种配置中,我能够正确处理绘图功能。
在下一步中,我想更改GLSurfaceView的大小和位置。我想将它放在屏幕的中央,并将宽度和高度设置为精确的音高,例如20mm x 20mm。
您是否有任何建议或提示我应该如何开始向GLSurfaceView引入此类更改?
答案 0 :(得分:5)
我想把它放在屏幕的中心
您需要将重力设置为父元素,例如Gravity.CENTER
。例如,如果是LinearLayout
,则调用linearLayout.setGravity(Gravity.CENTER)
。
将宽度和高度设置为精确的音高,例如20mm x 20毫米
要计算从mm到像素的大小,请使用:
float mmInPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 20,
getResources().getDisplayMetrics());
要设置GLSurfaceView的大小,请使用LayoutParams:
ViewGroup.LayoutParams layoutParams=glSurfaceView.getLayoutParams();
layoutParams.width=mmInPx;
layoutParams.height=mmInPx;
glSurfaceView.setLayoutParams(layoutParams);