自定义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 2016/5/21 0021.
- */
- public class DrawView extends View {
- private float x=100;
- private float y=100;
- public DrawView(Context context){
- super(context);
- } //自定义View时,必须实现View的三个构造函数
- public DrawView(Context context, AttributeSet attrs){
- super(context,attrs);
- }
- public DrawView(Context context, AttributeSet attrs, int defStyle){
- super(context,attrs,defStyle);
- }
- @Override
- public void onDraw(Canvas canvas){ //onDraw不是必需的,按需重写即可
- super.onDraw(canvas);
- Paint paint=new Paint();
- paint.setColor(Color.RED);
- canvas.drawCircle(x,y,100,paint);
- }
- public void setX(float x){
- this.x=x;
- }
- public void setY(float y){
- this.y=y;
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <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="com.pingyijinren.test.MainActivity">
- <com.pingyijinren.test.DrawView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/drawView"/>
- </RelativeLayout>
- package com.pingyijinren.test;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.View;
- public class MainActivity extends AppCompatActivity {
- private DrawView drawView;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- try{
- setContentView(R.layout.activity_main);
- }
- catch(Exception e){
- e.printStackTrace();
- Log.d("MainActivity",e.getMessage());
- }
- drawView=(DrawView)findViewById(R.id.drawView);
- drawView.setOnTouchListener(new View.OnTouchListener() { //drawView响应屏幕触摸事件
- @Override
- public boolean onTouch(View v, MotionEvent event) {
- drawView.setX(event.getX());
- drawView.setY(event.getY());
- drawView.invalidate();
- return true;
- }
- });
- }
- }
自定义View实现跟随手指的小球的更多相关文章
- 安卓自定义View实例-----跟随手指移动的鸟
今天学习了一些安卓开发中的自定义布局,编写了简单一个实例,“跟随手指移动的鸟”,需要两张图片,背景图片和鸟的图片,鸟的图片可以在屏幕中跟随手指的移动而移动. 1.将两张图片导入到mipmap中: 2. ...
- Android开发——跟随手指的小球实现
今天要实现的是一个跟随手指的小球,说白了就是让小球按着手指滑动的轨迹运动,实现起来还是比较容易的. 用到的类是drawView,我们先自定义一个DrawView组件. DrawView.java: ...
- 自定义View,随着手指运动的小球
这个实例是自定的view的初步介绍,要设计的是一个随着手指运动的小球.原理是随时获取手指的坐标,然后在这个坐标上面实时改变自定义view的坐标.这个view仅仅是画了一个圆形而已. 自定义的view ...
- 【Android 应用开发】自定义View 和 ViewGroup
一. 自定义View介绍 自定义View时, 继承View基类, 并实现其中的一些方法. (1) ~ (2) 方法与构造相关 (3) ~ (5) 方法与组件大小位置相关 (6) ~ (9) 方法与触摸 ...
- 安卓程序代写 网上程序代写[原]自定义View
一. 自定义View介绍 自定义View时, 继承View基类, 并实现其中的一些方法. (1) ~ (2) 方法与构造相关 (3) ~ (5) 方法与组件大小位置相关 (6) ~ (9) 方法与触摸 ...
- 自定义View 和 ViewGroup
一. 自定义View介绍 自定义View时, 继承View基类, 并实现其中的一些方法. (1) ~ (2) 方法与构造相关 (3) ~ (5) 方法与组件大小位置相关 (6) ~ (9) 方法与触摸 ...
- onTouchEvent中,跟随手指滑动的view出现抖动
在这次实践中,它抖动得不正常,太不正常,太抖. 其实是我代码上出现了问题,记录一下. 我是怎么设置滑动的呢? 通过改变view的margin. 然而我在onTouchEvent中怎么控制它滑动的大小呢 ...
- Android中实现自定义View组件并使其能跟随鼠标移动
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建An ...
- 从0开始学自定义View -1
PS:好久没有写博客了,之前的东西有所忘记,百度一下竟然查到了自己的写过的博客,访问量还可以,一开始的写博客的初衷是把自己不会的记录下来,现在没想到也有博友会关注我,这就给了我动力,工作之余把零零碎碎 ...
随机推荐
- framework7 点取消后还提交表单解决方案
$$('form.ajax-submit').on('submitted', function (e) { var xhr = e.detail.xhr; // actual XHR object v ...
- 建造者模式以及php实现
建造者模式: 造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对 ...
- hihocoder1705 座位问题
思路: 使用堆模拟.复习了priority_queue自定义结构体比较函数的用法. 实现: #include <bits/stdc++.h> using namespace std; ty ...
- js控制页面跳转,清缓存,强制刷新页面
单看标题,必定满脸蒙13. 其实,想表达的仅仅是,在js中通过window.location.href控制页面跳转时,有时会跳转至缓存页面,并没有真正去请求要跳转的地址,导致页面数据未能及时加载刷新. ...
- contact用法解析
经典用法: mysql> select concat('11','22','33'); +------------------------+ | concat('11','22','33') | ...
- cocos2dx游戏如何架构
声明:此篇文章不介绍如何使用cocos2dx制作游戏.站在架构师的角度如果制作游戏. 以我多年的游戏开发经验,和其他技术积累, 市面的所谈的一些软件架构模式都不太适合游戏软件. 我指的架构模式,MVC ...
- C++运行外部exe并判断exe返回值
有三个API函数可以运行可执行文件WinExec.ShellExecute和CreateProcess.CreateProcess因为使用复杂,比较少用. WinExec主要运行EXE文件. ⑴ 函数 ...
- 根据截至日期格式获取倒计时&&时间戳转日期格式
//时间戳转日期格式,传入时间戳必须为数字类型function currentDate(shijianchuo) { var date = new Date(shijianchuo); var y = ...
- iOS 导航栏风格
IOS-导航栏风格 导航控制器可以用几种不同的风格来显示自身.默认风格就是标准的灰色外观.目前支持三种不同的风格. 风 格 描 述 UIBarStyleDefault 默认风格:灰色背景, ...
- 通俗易懂的Redux了解下
Redux真的让我脑仁疼,感觉有点搞不定他,因为对我而言太抽象了.所以我用通俗易懂地方法去思考Redux,感觉能够理解了. 本文要点: action 配置行为 store.dispatch(actio ...