我想设置表面视图边框颜色。当我设置这个表面视图颜色然后它覆盖整个颜色。它隐藏了我在表面视图中运行的视频。
surfaceView = new SurfaceView(context);
surfaceView.setPadding(20, 20, 20, 20);
surfaceView.setBackgroundColor(Color.MAGENTA);
我也尝试了这个
surfaceView = new SurfaceView(context) {
@Override
protected void onDraw(Canvas canvas){
canvas.drawColor(Color.MAGENTA);
Rect border = new Rect(20, 20, surfaceView.getWidth() - 20, surfaceView.getHeight() - 20);
Paint paint = new Paint();
paint.setStrokeWidth(10);
paint.setColor(Color.MAGENTA);
canvas.drawRect(border, paint);
}
};
surfaceView.setPadding(50, 50, 50, 50);
我也尝试了这个,但它仍然没有边框。
请帮我设置表面视图边框颜色。
提前致谢。
答案 0 :(得分:1)
您是否尝试在表面视图中使用canvas.drawColor(Color.BLACK);
? Canvas本身不应该覆盖填充区域,因此你有边框。
其他解决方案是自己绘制边框:
// untested - written out of memory
onDraw(Canvas canvas) {
canvas.drawColor(Color.BLACK);
Rect border = new Rect(10, 10, width - 10, height - 10);
mPaint.setLineWidth(10);
mPaint.setColor(Color.MAGENTA);
canvas.drawRect(border, mPaint);
// draw more...
}
修改强>
在光荣的聊天中,OP透露他使用SurfaceView在其上绘制视频。我建议将填充更改为边距,并在MAGENTA中创建父视图的背景。视频会完全透支SurfaceView,因此上述解决方案无法用于视频播放。
总结一下:OP没有提供所有必要的信息,浪费了我的时间。感谢。