該篇文章從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();
}
下載地址:項目代碼