標籤:
實現:
實現方式:
繼承View類自己重繪一個圓,然後將這個自訂的繼承於View類的加入到當前的Activity並且為這個自訂的View控制項添加一個onTouchLitener事件
自訂群組件繼承於View類:
[java] view plain copy print ?
- 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
[html] view plain copy print ?
- 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:
[html] view plain copy print ?
- <?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
Android應用小執行個體--跟隨手指的小球