最近項(xiàng)目中有一個(gè)開(kāi)紅包的動(dòng)畫(huà)需要實(shí)現(xiàn),具體為:開(kāi)紅包時(shí),上下兩部分打開(kāi)的動(dòng)畫(huà)。本來(lái)覺(jué)得沒(méi)什么難度,但是實(shí)現(xiàn)的時(shí)候發(fā)現(xiàn)了一個(gè)棘手的地方,由于紅包上下兩部分都是帶圓角的,ImageView在移動(dòng)的時(shí)候會(huì)將這部分圓角覆蓋,產(chǎn)生視覺(jué)差,很難看。

紅包圖片
解決方法:加一個(gè)底層View,對(duì)底層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);
}