设置曲面视图边框颜色

时间:2013-07-02 09:18:02

标签: android

我想设置表面视图边框颜色。当我设置这个表面视图颜色然后它覆盖整个颜色。它隐藏了我在表面视图中运行的视频。

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

我也尝试了这个,但它仍然没有边框。

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

提前致谢。

1 个答案:

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