Как я могу уменьшить фоновый вид при отображении пользовательского вида

#android #layout

#Android #макет

Вопрос:

Как я могу затемнить свой фон при отображении пользовательского представления? В моей деятельности у меня есть относительный макет с некоторой фотографией в фоновом режиме. Когда пользователь выполняет какое-либо действие, в центре экрана появляется FrameLayout, а затем я хочу, чтобы он действовал как диалоговое окно — затемните все в framelayout.

Как я могу этого добиться?

Ответ №1:

добавьте этот вид поверх него .. это поможет вам..

 public class TransparentPanel extends LinearLayout {
    private Paint innerPaint;

    public TransparentPanel(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public TransparentPanel(Context context) {
        super(context);
        init();
    }

    private void init() {
        innerPaint = new Paint();
        innerPaint.setARGB(180, 75, 75, 75);
    }

    public void setInnerPaint(Paint innerPaint) {
        this.innerPaint = innerPaint;
    }

    @Override
    protected void dispatchDraw(Canvas canvas) {

        RectF drawRect = new RectF();
        drawRect.set(0, 0, getMeasuredWidth(), getMeasuredHeight());

        canvas.drawRoundRect(drawRect, 5, 5, innerPaint);

        super.dispatchDraw(canvas);
    }
}
  

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

1. Большое спасибо за это решение, вы понятия не имеете, насколько это сэкономило мое время. Я использовал это с помощью shape draw для рисования вида. Жаль, что не было способа дать чаевые (пожертвовать) через stack.