当显示自定义视图时,我该如何调暗背景视图?

5

当自定义View显示时,我该如何调暗背景?在我的Activity中,我有一个相对布局,其中包含一些背景照片。当用户执行某些操作时,FrameLayout出现在屏幕中央,然后我希望它像对话框一样运行-调暗Framelayout下的所有内容。

我该如何实现这个功能?

1个回答

9
在上面添加此视图..它会帮助您..
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);
    }
}

非常感谢您提供的解决方案,您不知道这为我节省了多少时间。我正在使用它与形状绘制一起绘制视图。希望有一种通过堆栈进行小费(捐赠)的方式。 - Mysterious_android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接