为了实现一个跟随手指的小球,我们运用自定义的View组件 ;这个UI组件将会在指定的位置绘制一个小球 ,这个位置可以动态改变 。当用户通过手指在屏幕上拖动时,程序监听这个手指动作,并把手指动作位置传给自定义UI组件,并通知组件重绘。
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// LinearLayout main = (LinearLayout)findViewById(R.id.root);
final MyView draw = new MyView(this);
draw.setMinimumWidth(300);
draw.setMinimumHeight(500);
setContentView(draw);
draw.setOnTouchListener(new View.OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
// TODO Auto-generated method stub
draw.currentx = event.getX();
draw.currenty = event.getY();
draw.invalidate();
return true;
}
});
}
class MyView extends View implements Runnable
{
public float currentx=40;
public float currenty=50;
public MyView(Context context)
{
super(context);
// TODO Auto-generated constructor stub
}
@Override
public void run()
{
// TODO Auto-generated method stub
}
@Override
protected void onDraw(Canvas canvas)
{
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint p = new Paint();
p.setColor(Color.GREEN);
canvas.drawCircle(currentx, currenty, 15, p);
}
}
}