android: canvas нарисуйте прозрачный прямоугольник и заполните область отдыха

#android #android-camera #surfaceview #drawrectangle

#Android #android-камера #surfaceview #drawrectangle

Вопрос:

Я делюсь кодом для тех, кому это нужно, кодом, используемым для рисования SurfaceView для камеры, состоящим из прозрачного прямоугольника на прозрачном фоне с дополнительной буквой alpha.

Приветствуем лучшие вклады от всех 🙂

 @Override
protected void onDraw(Canvas canvas) {
    mAGPLog.e(this.getClass().getName()   " - onDraw");

    canvas.drawColor(Color.argb(128, 224, 224, 224));

    int margin = (int) getResources().getDimension(R.dimen.margin_camera);
    int width = getWidth();
    int height = getHeight();
    mAGPLog.e("width - "   width   " * height - "   height);

    int distance = width < height ? width - margin : height - margin;
    paint.setColor(Color.CYAN);
    paint.setStrokeWidth(strokerWidth);
    paint.setStyle(Paint.Style.STROKE);
    canvas.drawRect(
            (width - distance) / 2, (height - distance) / 2, (width   distance) / 2, (height   distance) / 2, paint);

    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.argb(0, 255, 255, 255));
    paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
    canvas.drawRect(
            (width - distance) / 2   strokerWidth, (height - distance) / 2   strokerWidth, (width   distance) / 2 - strokerWidth, (height   distance) / 2 - strokerWidth, paint);
    super.onDraw(canvas);
}
  

введите описание изображения здесь

Комментарии:

1. Я думаю, вы можете изменить отсюда techrepublic.com/article /…

2. Да, спасибо, это тоже хорошая идея.