文档章节

简单自定义view,随手指移动的小球

dktlh
 dktlh
发布于 2015/09/27 00:20
字数 295
阅读 46
收藏 0

首先需要创建一个继承View的类,并在这个类中重写onDraw()方法---负责绘制小球,还需要重写onTouuch(Motion event)方法---负责小球随手指移动的事件,当手指移动时,需要使用invalidate()方法来通知组件重新绘制

public class CustomView extends View {

    public float currentX = 40;
    public float currentY = 50;

    //定义、并创建画笔
    Paint paint = new Paint();

    public CustomView(Context context) {
        super(context);
    }

    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        //设置画笔的颜色
        paint.setColor(Color.RED);
        //绘制一个圆         圆心的X坐标,圆心的Y坐标,圆心的半径,绘制圆的画笔
        canvas.drawCircle(currentX, currentY, 15, paint);
    }

    //重写触摸事件,编写自定义的触摸处理方法
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        //修改currentX,currentY的两个属性
        currentX = event.getX();
        currentY = event.getY();
        //通知当前组件重绘
        invalidate();
        //返回true表示该处理方法已经处理事件
        return true;
    }
}


第二步就是自定义view的使用

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   tools:context=".MainActivity">

   <com.example.dkt.myapplication.CustomView
       android:layout_width="match_parent"
       android:layout_height="match_parent" />

</RelativeLayout>


© 著作权归作者所有

dktlh
粉丝 1
博文 10
码字总数 2008
作品 0
杭州
私信 提问
自定义View——仿腾讯TIM下拉刷新View

一 概述 自定义 View 是 Android 开发里面的一个大学问。偶然间看到 TIM 邮箱界面的刷新 View 还挺好玩的,于是就自己动手实现了一个,先看看 TIM 里边的效果图: 二 需求分析 看到上面的动图...

幺幺零Developer
2018/06/06
0
0
Material Design学习之 Switch(详细解释)

转载请注明出处:王亟亟的大牛之路 继续这一系列的Material Design之行,昨天讲的是Sliders链接如下:http://blog.csdn.net/ddwhan0123/article/details/50586510 今天讲的是Switch,本来有考...

ddwhan0123
2016/01/27
0
0
Android属性动画(Animator)的优势

我们现在有一个简单需求:我们的界面中有一个Button和一个ImageView ,我们点击ImageView产生点击事件,然后我们点击Button来移动这个ImageView,让这个ImageView沿着X轴移动500,并且在移动之...

peter_wang2012
2015/09/22
3K
2
类似window7的气泡屏保的自定义view

这个只能做来玩玩儿,没有太多的使用价值,看着好玩,有密集恐惧症的就不要玩儿了 在实现上主要使用了两个自定义, 一个画圆(使用图片也是可以的) 一个写位置逻辑 github链接 上图 不重叠气...

不识水的鱼
2017/12/13
0
0
DragTheBall小游戏之Android拖拽技术

导读:初学乍练,欢迎多多指教。 本例是一个拖动小球的游戏(坑爹,给Baby玩的吧。。),主要是用到Android2D绘图技术、自定义组件技术。 话不多说,先上图: 1. 窗口在拖动小球之后会变为当...

RyanHoo
2012/03/11
2.1K
5

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
27分钟前
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
4
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部