最近項目中有一個開紅包的動畫需要實現(xiàn)列林,具體為:開紅包時,上下兩部分打開的動畫镀赌。本來覺得沒什么難度,但是實現(xiàn)的時候發(fā)現(xiàn)了一個棘手的地方际跪,由于紅包上下兩部分都是帶圓角的商佛,ImageView在移動的時候會將這部分圓角覆蓋,產(chǎn)生視覺差姆打,很難看良姆。
紅包圖片
解決方法:加一個底層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);
}