该篇文章从eoeAndroid搬迁过来的,原文地址:[Android实例] 类似地震波向外扩散的自定义控件
主要代码是自定义View的onDraw方法:代码很简单,就没有过多注释和介绍
@Override
public void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
setBackgroundColor(Color.TRANSPARENT);
for (int i = 0; i < alphaList.size(); i++) {
int alpha = Integer.parseInt(alphaList.get(i));
int startWidth = Integer.parseInt(startWidthList.get(i));
paint.setAlpha(alpha);
canvas.drawCircle(getWidth() / 2, getHeight() / 2, startWidth,
paint);
if (isStarting && alpha > 0 && startWidth < maxWidth) {
alphaList.set(i, (alpha-1)+"");
startWidthList.set(i, (startWidth+1)+"");
}
}
if (isStarting&&Integer.parseInt(startWidthList.get(startWidthList.size() - 1)) == maxWidth / 5) {
alphaList.add("255");
startWidthList.add("0");
}
if(isStarting&&startWidthList.size()==6){
startWidthList.remove(0);
alphaList.remove(0);
}
invalidate();
}
下载地址:项目代码