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