Android應用小實例--跟隨手指的小球

fmms 12年前發布 | 40K 次閱讀 Android Android開發 移動開發

實現效果圖:

 Android應用小實例--跟隨手指的小球

實現方式:

繼承View類自己重繪一個圓,然后將這個自定義的繼承于View類的加入到當前的Activity并且為這個自定義的View控件添加一個onTouchLitener事件

 

自定義組件繼承于View類:

package com.jiahui.draw;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;

public class DrawView extends View {

    public float currentX=40;
    public float currentY=50;

    //必須重寫一個構造方法
    public DrawView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    //重寫onDraw方法通過Canvas繪畫
    @Override
    protected void onDraw(Canvas canvas) {      
        super.onDraw(canvas);
        //創建畫筆
        Paint paint=new Paint();
        paint.setColor(Color.RED);
        //繪制一個小圓
        canvas.drawCircle(currentX, currentY, 25, paint);

    }

}
將自定義的組件添加到當前的Activity
package com.jiahui.draw;

import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;

public class CustomeViewActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout root=(LinearLayout) findViewById(R.id.root);

        //創建一個自己繼承于View的對象
        final DrawView drawView=new DrawView(this);
        //設置自定義組件的最大寬度和高度
        drawView.setMinimumWidth(300);
        drawView.setMinimumHeight(500);

        drawView.setOnTouchListener(new View.OnTouchListener() {    
            public boolean onTouch(View v, MotionEvent event) {
                drawView.currentX=event.getX();
                drawView.currentY=event.getY(); 
                //重繪
                drawView.invalidate();
                //返回true表明算是方法已經處理該事件
                return true;
            }
        });
        root.addView(drawView);
    }
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" 
    android:background="#99FFCC"
    android:id="@+id/root">
</LinearLayout>
 如轉載請聲明文章出處:http://blog.csdn.net/jiahui524 

 源代碼下載:http://download.csdn.net/detail/jiahui524/3786788

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!