0

我想设置表面视图边框颜色。当我设置这个表面视图颜色时,它会被该颜色覆盖。它隐藏了我在表面视图中运行的视频。

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

我也试过这个,但它仍然没有边界。

请帮我设置表面视图边框颜色。

提前致谢。

4

1 回答 1

1

您是否尝试canvas.drawColor(Color.BLACK);在您的表面视图中使用?画布本身不应该覆盖填充区域,因此你有你的边界。

其他解决方案是自己绘制边框:

// 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没有提供所有必要的信息,浪费了我的时间。谢谢。

于 2013-07-02T09:24:00.997 回答