1

我正在研究一个涉及动态创建表示控件的视图层次结构的Xamarin.Android项目。一个这样的控件使用AndroidGameView类,该类继承自SurfaceView并允许使用OpenGL ES进行绘图。我试图想象如何给圆角视图。我重写了OnDraw方法或应用可绘制背景来剪辑,但没有取得任何成功。 This question似乎与我的目标类似,但我无法弄清楚如何动态地执行此操作而不是使用axml。是否有可能动态给出一个SurfaceView圆角?如何动态创建带圆角的SurfaceView

回答

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);