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.    }  
  23.    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章