`
liu1028701143
  • 浏览: 35552 次
  • 性别: Icon_minigender_1
最近访客 更多访客>>
社区版块
存档分类
最新评论

自定义view-跟随手指动的小球

阅读更多

View组件类似于javaSwing中的JPanel。它只是一个巨型的空白区域,view组件内没有任何的内容,对于android的其他组件来说,他们都继承了view组件,并在view所提供的空白区域进行外观编辑,

 

下面是view开发是所用到的回调方法:

 

onFinishInflate() 当View中所有的子控件均被映射成xml后触发
onMeasure(int, int) 确定所有子元素的大小
onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发
onSizeChanged(int, int, int, int) 当view的大小发生变化时触发
onDraw(Canvas) view渲染内容的细节
onKeyDown(int, KeyEvent) 有按键按下后触发
onKeyUp(int, KeyEvent) 有按键按下后弹起时触发
onTrackballEvent(MotionEvent) 轨迹球事件
onTouchEvent(MotionEvent) 触屏事件
onFocusChanged(boolean, int, Rect) 当View获取或失去焦点时触发
onWindowFocusChanged(boolean) 当窗口包含的view获取或失去焦点时触发
onAttachedToWindow() 当view被附着到一个窗口时触发
onDetachedFromWindow() 当view离开附着的窗口时触发
onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发

 

 

实例:随手指动的小球

 

自定义组件:

 

package cn.haozi;

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);

}

public void onDraw(Canvas canvas){

super.onDraw(canvas);
//创建一个画笔
Paint p = new Paint();
//设置画笔的颜色
p.setColor(Color.BLUE);
//绘制一个小球
canvas.drawCircle(currentX, currentY, 15, p);


}


}

activity类:

package cn.haozi;

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

public class DrawroolActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

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

final Drawview draw = new Drawview(this);

draw.setMinimumHeight(300);
draw.setMinimumWidth(500);

//为draw添加绑定touch事件

draw.setOnTouchListener(new OnTouchListener() {

@Override
public boolean onTouch(View agr0, MotionEvent event) {
//修改draw组件的两个属性
draw.currentX = event.getX();
draw.currentY = event.getY();

//重绘
draw.invalidate();



return false;
}
});
root.addView(draw);

}
}

 

 

 

 

  • 大小: 1.4 KB
0
1
分享到:
评论

相关推荐

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

    在Android平台上,开发一款应用程序,让一个小球跟随手指移动,是一个经典的交互式UI设计实例。这个实例主要涉及到了Android的视图系统、事件处理以及绘图机制。下面将详细讲解这些知识点。 首先,Android的视图...

    Android小例子 - 跟随手指移动的小球

    2. **自定义View**:为了实现跟随手指移动的效果,我们需要扩展`View`类或`ViewGroup`类,并重写`onDraw()`方法,用于在Canvas上绘制小球。同时,还需要重写`onTouchEvent()`来捕获用户的触摸事件。 3. **绘制...

    Android自定义圆形View实现小球跟随手指移动效果

    在Android开发中,自定义View是一项重要的技能...这种自定义View的方法不仅可以用于小球跟随手指移动,还可以扩展到其他各种交互式UI元素,如拖动元素、画布上的动态图形等,极大地丰富了Android应用的视觉和交互体验。

    EQBalanceView跟随手指的小球

    "EQBalanceView跟随手指的小球"是一个很好的实例,展示了如何利用自定义View实现一个动态交互的效果,让用户可以通过手指移动小球来调整某种平衡状态。这个项目的主要目标是创建一个视图,其中包含一个小球,当用户...

    Android实现跟随手指的小球

    总的来说,"Android实现跟随手指的小球"这个练习涵盖了Android开发中的几个关键知识点:自定义View、触摸事件处理、图形绘制以及动画应用。通过实践这个项目,开发者可以深入理解Android UI机制,并提升交互设计能力...

    安卓跟随手指移动小球

    在安卓平台上,实现一个"跟随手指移动的小球"功能,主要涉及到的是触摸事件处理和图形绘制。这个项目的核心是理解Android的View系统、触摸事件的传递机制以及如何在Canvas上动态绘制图形。以下是对这些关键知识点的...

    android 跟随手指移动的小球

    综上所述,实现"android 跟随手指移动的小球"实例涉及Android基础、自定义View、绘图、触摸事件处理等多个方面,通过这个实例,开发者能深入理解Android UI系统的工作原理,为后续的复杂应用开发打下坚实的基础。...

    跟随手指移动的小球,简单的自定义控件(自定义XML属性)

    在这个示例中,“跟随手指移动的小球”是一个典型的自定义控件案例,它通过监听用户的触摸事件,使得小球可以随着手指在屏幕上的移动而同步移动。下面我们将深入探讨这个话题,讲解如何实现这样的功能以及涉及到的...

    跟随手指的小球的简单小应用.zip

    该源码实现了一款跟随手指的小球的简单小应用,首先应用继承View类自己重绘一个圆,然后将自定义的继承于View类的加入到当前的Activity,最后还为这个自定义的View控件添加一个onTouchLitener事件就可以实现了这个小...

    android:跟随手指的小球

    在这个实例中,我们关注的是一个名为“跟随手指的小球”的功能,这涉及到自定义ImageView的子类来追踪并显示手指在屏幕上的位置。 首先,我们需要创建一个新的Java类,继承自Android的ImageView类。这个新类将成为...

    安卓 跟随手指移动的小球

    在安卓平台上,开发一个跟随手指移动的小球应用是一项基础但有趣的任务,它涉及到触摸事件处理、坐标系统理解和图形绘制等多个核心知识点。以下是对这些技术点的详细解释: 1. **触摸事件处理**: 安卓系统通过`...

    Android开发丶自定义viewの一个触摸移动的小球

    本示例"Android开发丶自定义viewの一个触摸移动的小球"就是一个很好的实践,它涉及到Android自定义View的绘制和事件处理。 首先,自定义View通常需要创建一个新的Java类,继承自View或其子类,如ViewGroup。在这个...

    Android开发实现跟随手指的小球效果示例

    首先,创建一个自定义的View组件DrawView,继承自View类,用于绘制小球。 DrawView类中定义了两个浮点型变量currentX和currentY,用于记录小球的当前位置。此外,还定义了一个Paint对象p,用于设置画笔颜色。 在...

    随手指运动的小球

    在事件回调中,我们可以获取到手指的移动轨迹,然后更新小球的位置,最后调用`invalidate()`方法触发重绘,使得小球跟随手指移动。 5. **测量与布局**: 自定义控件还需要考虑其尺寸和位置。需要重写`onMeasure()`来...

    跟随手指的小球的简单小应用

    该源码实现了一款跟随手指的小球的简单小应用,首先应用继承View类自己重绘一个圆,然后将自定义的继承于View类的加入到当前的Activity,最后还为这个自定义的View控件添加一个onTouchLitener事件就可以实现了这个小...

    Android自定义控件实现随手指移动的小球

    为了使小球能够跟随手指移动,我们需要重写`onTouchEvent()`方法。`MotionEvent`对象提供了触摸事件的各种状态,如ACTION_DOWN(手指按下)、ACTION_MOVE(手指移动)和ACTION_UP(手指抬起)。我们将根据这些状态...

    android拖动小球demo

    假设小球是在自定义的`View`中绘制的,那么这个自定义`View`需要在布局文件中声明并添加到`ViewGroup`(如`LinearLayout`或`RelativeLayout`)中,以便显示在屏幕上。 7. **动画与平滑滚动**: 虽然描述中没有...

    Android实现拖动小球跟随手指移动效果

    在Android开发中,创建动态和交互式的用户界面是一项常见的任务,比如实现一个小球跟随手指移动的效果。这个功能可以通过自定义View并结合触摸事件监听来实现。以下是对标题和描述中涉及知识点的详细解释: 1. **...

Global site tag (gtag.js) - Google Analytics