我正在开发一个Xamarin.Android项目,该项目涉及动态创建代表控件的视图层次结构。一个这样的控件使用AndroidGameView类,它继承自SurfaceView并允许使用OpenGL ES进行绘图。我正在试图弄清楚如何给视角圆角。我已经修改了覆盖OnDraw方法或将可绘制背景应用于剪辑,但没有取得任何成功。 This question似乎与我的目标相似,但我无法弄清楚如何动态地执行此操作而不是使用axml。是否可以动态地为SurfaceView提供圆角?
答案 0 :(得分:0)
在Android上没有直接支持。
我认为最好的方法是使用大型三角形扇形创建所需的圆角矩形,该扇形定义圆角并将其定位在场景后面并使其不透明。 SurfaceView的格式必须是Bitmap.Config.ARGB_8888并使用setOpaque(0)和setAlpha(1.0)。 glClearColor()必须是透明的黑色才能与Android画布混合:
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);