您的位置:首页 > 移动开发 > Android开发

Android学习篇章2-Drop雨滴效果

2013-10-30 13:36 483 查看
public class Drop {
public float x;
public float y;
public float r=2;
public int alpha=255;
public static final int Max_R=30;

public Drop()
{

}

public Drop(float x, float y) {
super();
this.x = x;
this.y = y;
}

public void draw(Canvas canvas,Paint paint)
{
paint.setAlpha(alpha);
canvas.drawCircle(x, y, r, paint);
alpha-=20;
r+=3;
}

}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

public class MainActivity extends Activity {

MyView myview =null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
myview=new MyView(this);

//		setContentView(R.layout.activity_main);
setContentView(myview);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

//	@Override
//	public boolean onTouchEvent(MotionEvent event) {
//		float x=event.getX();
//		float y=event.getY();
//		Drop drop= new Drop(x, y) ;
//		myview.add(drop);
//		return true;
//	}
}


。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
public class MyView extends View{

public static final String TAG="MyView";
List<Drop> list_drops= new ArrayList<Drop>();

public MyView(Context context) {
super(context);
}

@Override
protected void onDraw(Canvas canvas) {

Paint paint=new Paint();
paint.setColor(Color.RED);
paint.setStyle(Style.STROKE);
paint.setAntiAlias(true);
paint.setStrokeWidth(1);
canvas.drawLine(20, 20, 300, 300, paint);
Log.i(TAG, String.valueOf("bbbbbbbbbbbb>"+list_drops.size()));
//		for(Drop d:list_drops)
//		{
//			Log.i(TAG, String.valueOf(d.x));
//			d.draw(canvas, paint);
//		}
//		invalidate();
Iterator<Drop> iterator=list_drops.iterator();
while(iterator.hasNext())
{
Drop d= iterator.next();
d.draw(canvas, paint);
Log.i(TAG, String.valueOf(d.x));

if(d.r>=d.Max_R)
{
iterator.remove();
}

}
invalidate();

}

public void add(Drop d)
{
list_drops.add(d);

}

@Override
public boolean onTouchEvent(MotionEvent event) {
float x=event.getX();
float y=event.getY();
Drop drop= new Drop(x, y) ;
this.add(drop);
return true;
}
}

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: