歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android應用小實例--跟隨手指的小球

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

日期:2017/3/1 11:06:43   编辑:Linux編程

實現效果圖:

實現方式:

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

Android應用小實例--跟隨手指的小球源代碼下載:

免費下載地址在 http://linux.linuxidc.com/

用戶名與密碼都是www.linuxidc.com

具體下載目錄在 /pub/Android源碼集錦/2011年/11月/Android應用小實例--跟隨手指的小球/

自定義組件繼承於View類:

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

將自定義的組件添加到當前的Activity

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

main.xml:

  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>
Copyright © Linux教程網 All Rights Reserved