2013-07-02 3 views
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); 

Я попробовал это также, но до сих пор его нет границы на него.

Пожалуйста, помогите мне установить цвет границы поверхности.

Заранее спасибо.

ответ

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... 
} 

Редактировать

в славной чат ФП показал, что он использует SurfaceView рисовать видео на нем. Я предложил изменить отступ на маржу и сделать фон родительского представления в MAGENTA.

SurfaceView полностью перевернут видео, поэтому вышеупомянутое решение не будет работать с воспроизведением видео.

Подводя итог: ОП потратил мое время, не предоставив всю необходимую информацию. Благодарю.

+0

Я попробовал этот "держатель = surfaceView.getHolder(); \t \t \t холст холст = holder.lockCanvas(); \t \t \t canvas.drawColor (Color.RED);". но он все еще не работает. –

+0

я попробовал это тоже .. но не success..surfaceView = новый SurfaceView (контекст) { \t \t \t \t \t \t @Override \t \t \t \t \t защищен недействительным OnDraw (холст холст) { \t \t \t \t \t \t \t canvas.drawColor (Color.MAGENTA); \t \t \t \t \t \t Rect границы = новый Rect (20, 20, surfaceView.getWidth() - 20, surfaceView.getHeight() - 20); \t \t \t \t \t Paint paint = new Paint(); \t \t \t \t \t \t paint.setStrokeWidth (10); \t \t \t \t paint.setColor (цвет.Magenta); \t \t \t \t \t \t canvas.drawRect (border, paint); \t \t \t \t \t} \t \t \t \t \t}; \t \t \t \t \t surfaceView.setPadding (50, 50, 50, 50); –

+0

Пожалуйста, введите код в свой вопрос и напишите его. «нет успеха» означает что? – WarrenFaith

Смежные вопросы