最近项目中有一个开红包的动画需要实现,具体为:开红包时,上下两部分打开的动画。本来觉得没什么难度,但是实现的时候发现了一个棘手的地方,由于红包上下两部分都是带圆角的,ImageView在移动的时候会将这部分圆角覆盖,产生视觉差,很难看。
红包图片
解决方法:加一个底层View,对底层View绘制圆角即可解决
@Override
public void dispatchDraw(Canvas canvas) {
Path path = new Path();
int w = this.getWidth();
int h = this.getHeight();
path.addRoundRect(new RectF(0, 0, w, h), 16, 16, Path.Direction.CW);
canvas.clipPath(path);
super.dispatchDraw(canvas);
}
网友评论