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);
}
}將自定義的組件添加到當前的Activitypackage 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
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!