Android应用小实例--跟随手指的小球

实现效果图:

实现方式:

继承View类自己重绘一个圆,然后将这个自定义的继承于View类的加入到当前的Activity并且为这个自定义的View控件添加一个onTouchLitener事件

自定义组件继承于View类:

[java]
view plain
copy
print
?

  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

[html]
view plain
copy
print
?

  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:

[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

时间: 2024-10-23 08:47:15

Android应用小实例--跟随手指的小球的相关文章

Android开发——跟随手指的小球实现

今天要实现的是一个跟随手指的小球,说白了就是让小球按着手指滑动的轨迹运动,实现起来还是比较容易的. 用到的类是drawView,我们先自定义一个DrawView组件. DrawView.java: package cn.csdn.android.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Pa

跟随手指的小球

     Crize_demo\draw_demo\src\main\java\com\ly\draw_demo\DrawView.java 1 import android.content.Context; 2 import android.graphics.Canvas; 3 import android.graphics.Color; 4 import android.graphics.Paint; 5 import android.view.View; 6 7 public class

自定义View实现跟随手指的小球

package com.pingyijinren.test; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.AttributeSet; import android.view.View; /** * Created by Administrator on

Android实战简易教程-第五十八枪(AlarmManager类用法研究小实例)

一.概念及相关方法 android中实现定时任务一般有两种实现方式,一种是使用Java API中提供的Timer类,一种是使用android的Alarm机制.Timer机制有个短板就是不太适用于那些需要长期在后台运行的任务,我们都知道为了让电池更加耐用,会在长时间不操作手机的情况下,CPU进入休眠状态,这是可能导致Timer中的定时任务无法正确运行.所以我们重点来研究一下Alarm机制. AlarmManager,顾名思义,就是"提醒",是Android中常用的一种系统级别的提示服务,

Android 上千实例源码分析以及开源分析

Android 上千实例源码分析以及开源分析(百度云分享) 要下载的直接翻到最后吧,项目实例有点多. 首先 介绍几本书籍(下载包中)吧. 01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 06_Android的GUI系统 07_Android的Audio系统 08_Android的Video 输入输出系统 09_Android的多媒体系统 10_

android怎么实现 图像随着手指的移动而移动

============问题描述============ android怎么实现   图像随着手指的移动而移动  当点击一个地方的时候图片能够移动到那个地方   希望给出具体的示例代码 ============解决方案1============ activity内容: public class CustomView extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCrea

Android学习小Demo(20)关于Fragment的应用

Android在3.0之后引入了Fragment的概念,我猜测其想法可能只是想更好地兼容大屏幕或者平板的开发,因为大屏幕可以展示更多的内容,而内容一多,逻辑有可能就乱,而利用Fragment,则可以将不同的逻辑封装进不同的Fragment中,但是展现呢,还是在同一个Activity中,在同一个屏幕上显示.而对于屏幕并不大的手机来说,如果一个页面展示的东西并不多,那么其实将逻辑直接写在Activity,利用多个Activity实现多个页面的展示,我觉得也是可以接受的,毕竟用Activity还是用F

android widget 开发实例 : 桌面便签程序的实现具体解释和源代码 (上)

如有错漏请不吝拍砖指正,转载请注明出处,很感谢 桌面便签软件是android上经常使用软件的一种,比方比較早的Sticky Note,就曾很流行, Sticky Note的介绍能够參见 http://www.tompda.com/c/article/11778/ 而实际上使用android平台对widget开发的支持,桌面便签类软件是很易于开发的. 本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法. 1.MyNote的终于实现效果 为了提起大家阅读本文的兴趣,先

Android Widget 小部件(四---完结) 使用ListView、GridView、StackView、ViewFlipper展示Widget

官方有话这样说: A RemoteViews object (and, consequently, an App Widget) can support the following layout classes: FrameLayout LinearLayout RelativeLayout And the following widget classes: AnalogClock Button Chronometer ImageButton ImageView ProgressBar Text