2011-09-28 72 views
5

如何在显示自定义视图时调暗背景?在我的活动中,我的背景中有一些照片的相对布局。当用户做了一些动作 - FrameLayout出现在屏幕中心 - 然后我想让它像对话框一样 - 在framelayout下面将所有东西都变暗。如何在显示自定义视图时调暗背景视图

我该如何做到这一点?

回答

8

添加这一观点在它..它会帮助你..

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); 
    } 
} 
+0

THX。这很有帮助。 – Bandzio

+0

非常感谢这个解决方案,你不知道这会节省多少时间。我正在使用这个与形状绘制绘制视图。希望有一种方法可以通过堆栈来提示(捐赠)。 –