现在的主流电视都需要做小窗口的功能,而当小窗口中的播放内容是物理信号源的时候,一般来说都需要通过扣洞的方式,来实现的播放。其实扣洞方式比较简单。
1,复写一个layout,RelativeLayout, LinerLayout 或其他随意。
2,在ondraw中方法中实现扣洞。
关键代码仅有如下几行,Mark一下,也供需要的同学参考:
private Rect mRect = null;
public void setHoleMode(Rect rect) {
mRect = rect;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
SLog.d(TAG, "onDraw!");
if (mRect != null) {
canvas.save();
canvas.clipRect(mRect, Op.REPLACE.REPLACE);
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
canvas.restore();
}
super.onDraw(canvas);
}