Android應用小執行個體--跟隨手指的小球

來源:互聯網
上載者:User

標籤:

 

實現:

 

實現方式:

繼承View類自己重繪一個圓,然後將這個自訂的繼承於View類的加入到當前的Activity並且為這個自訂的View控制項添加一個onTouchLitener事件

 

自訂群組件繼承於View類:

[java]   view plain copy print ?
  1. package com.jiahui.draw;  
  2.   
  3. import android.content.Context;  
  4. import android.graphics.Canvas;  
  5. import android.graphics.Color;  
  6. import android.graphics.Paint;  
  7. import android.view.View;  
  8.   
  9. public class DrawView extends View {  
  10.   
  11.     public float currentX=40;  
  12.     public float currentY=50;  
  13.       
  14.     //必須重寫一個構造方法  
  15.     public DrawView(Context context) {  
  16.         super(context);  
  17.         // TODO Auto-generated constructor stub  
  18.     }  
  19.     //重寫onDraw方法通過Canvas繪畫  
  20.     @Override  
  21.     protected void onDraw(Canvas canvas) {        
  22.         super.onDraw(canvas);  
  23.         //建立畫筆  
  24.         Paint paint=new Paint();  
  25.         paint.setColor(Color.RED);  
  26.         //繪製一個小圓  
  27.         canvas.drawCircle(currentX, currentY, 25, paint);  
  28.   
  29.     }  
  30.       
  31. }  


 

將自訂的組件添加到當前的Activity

[html]   view plain copy print ?
  1. package com.jiahui.draw;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.view.MotionEvent;  
  6. import android.view.View;  
  7. import android.widget.LinearLayout;  
  8.   
  9. public class CustomeViewActivity extends Activity {  
  10.     public void onCreate(Bundle savedInstanceState) {  
  11.         super.onCreate(savedInstanceState);  
  12.         setContentView(R.layout.main);  
  13.           
  14.         LinearLayout root=(LinearLayout) findViewById(R.id.root);  
  15.           
  16.         //建立一個自己繼承於View的對象  
  17.         final DrawView drawView=new DrawView(this);  
  18.         //設定自訂群組件的最大寬度和高度  
  19.         drawView.setMinimumWidth(300);  
  20.         drawView.setMinimumHeight(500);  
  21.     
  22.         drawView.setOnTouchListener(new View.OnTouchListener() {      
  23.             public boolean onTouch(View v, MotionEvent event) {  
  24.                 drawView.currentX=event.getX();  
  25.                 drawView.currentY=event.getY();   
  26.                 //重繪  
  27.                 drawView.invalidate();  
  28.                 //返回true表明算是方法已經處理該事件  
  29.                 return true;  
  30.             }  
  31.         });  
  32.         root.addView(drawView);  
  33.     }  
  34. }  


main.xml:

[html]   view plain copy print ?
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical"   
  6.     android:background="#99FFCC"  
  7.     android:id="@+id/root">  
  8. </LinearLayout>  


 如轉載請聲明文章出處:http://blog.csdn.net/jiahui524 

 原始碼下載:http://download.csdn.net/detail/jiahui524/3786788

 

Android應用小執行個體--跟隨手指的小球

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.