Android应用之小球跟着手指动


首先是介绍一下是怎么画图!

有两个类Canvas,Paint;

Canvas代表了“依附”了指定View的画布,Paint 代表了Canvas上的画笔;

如何在Android应用中绘制基本的集合图形,关键在于一个自定义View组件,要重写View组件的onDraw(Canvase)方法,接下来是在该 Canvas上绘制大量的几何图形,球形,方块,线,等各种形状!

画球: Canvas.drawCircle(x,y,len,paint)

为球绑上Touch事件;

原码如下:

CustomView类:

  1. public void onCreate(Bundle savedInstanceState)  
  2.    {  
  3.       super.onCreate(savedInstanceState);  
  4.       setContentView(R.layout.main);  
  5.       //获取布局文件中的LinearLayout容器   
  6.       LinearLayout root = (LinearLayout)findViewById(R.id.root);  
  7.       //创建DrawView组件   
  8.       final DrawView draw =new DrawView(this);  
  9.       //设置自定义组件的最大宽度、高度   
  10.       draw.setMinimumWidth(300);  
  11.       draw.setMinimumHeight(500);  
  12.       //为draw组件绑定Touch事件   
  13.       draw.setOnTouchListener(new OnTouchListener()  
  14.       {  
  15.          @Override  
  16.          public boolean onTouch(View arg0, MotionEvent event)  
  17.          {  
  18.             //修改draw组件的currentX、currentY两个属性   
  19.             draw.currentX = event.getX();  
  20.             draw.currentY = event.getY();  
  21.             //通知draw组件重绘   
  22.             draw.invalidate();  
  23.             //返回true表明处理方法已经处理该事件   
  24.             return true;  
  25.          }      
  26.       });  
  27.       root.addView(draw);  
  28.    }  

DrawView类:

  1. public float currentX = 40;  
  2.    public float currentY = 50;  
  3.    /** 
  4.     * @param context 
  5.     */  
  6.    public DrawView(Context context)  
  7.    {  
  8.       super(context);  
  9.       // TODO Auto-generatedconstructor stub   
  10.    }  
  11.    @Override  
  12.    public void onDraw (Canvas canvas)  
  13.    {  
  14.       super.onDraw(canvas);  
  15.       //创建画笔   
  16.       Paint p = new Paint();  
  17.       //设置画笔的颜色   
  18.       p.setColor(Color.GREEN);  
  19.       //绘制一个小圆(作为小球)   
  20.       canvas.drawCircle(currentX , currentY , 15 , p);  
  21.        
  22.    }  

相关内容