博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义View,随着手指运动的小球
阅读量:7061 次
发布时间:2019-06-28

本文共 1919 字,大约阅读时间需要 6 分钟。

这个实例是自定的view的初步介绍,要设计的是一个随着手指运动的小球。原理是随时获取手指的坐标,然后在这个坐标上面实时改变自定义view的坐标。这个view仅仅是画了一个圆形而已。

 

自定义的view

DrawView.java 

package com.kale.drawview;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class DrawView extends View{    public float currentX = 60;    public float currentY = 60;        //定义,创建画笔    Paint paint = new Paint();    public DrawView (Context context) {        super(context);    }        public DrawView(Context context,AttributeSet set) {        super(context,set);    }        @Override    public void onDraw(Canvas canvas) {        super.onDraw(canvas);        //设置画笔颜色        paint.setColor(Color.RED);        //绘制一个小圆        canvas.drawCircle(currentX, currentY, 50, paint);    }        // 为该组件的触碰时间2重写处理的方法    @Override    public boolean onTouchEvent(MotionEvent event) {        // 修改坐标        currentX = event.getX();        currentY = event.getY();                // 通知组件,重新绘制自己        invalidate();        // 返回true表明该方法已经处理该事件        return true;    }    }

 

布局文件

 

当然,我们也可以不用布局文件,直接在代码中把自定义控件放入layout中

package com.kale.drawview;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.RelativeLayout;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        /*        RelativeLayout root  = (RelativeLayout)findViewById(R.id.root_relativeLayout_id);                final DrawView drawView = new DrawView(this);        //設置組件的最大寬度        drawView.setMinimumHeight(300);        drawView.setMinimumWidth(500);        root.addView(drawView);*/    }}

转载地址:http://synll.baihongyu.com/

你可能感兴趣的文章
三亚:严查“先登记支付房款、后补交社保或个税”行为
查看>>
神级程序猿用HTML5代码画出恐龙求欢图,想象力太丰富!
查看>>
谋势、聚力、强生态,用友三十而立
查看>>
python爬虫——40行代码爬取「笔趣看」全部小说
查看>>
数据分析师完整的知识结构
查看>>
Airbnb个性化搜索服务架构
查看>>
【译】Cloudera Manager(CDH)入门系列之四 (管理员控制台)
查看>>
编程常用动词细微差别
查看>>
如何通过Dataworks禁止MaxCompute 子账号跨Project访问
查看>>
聊聊reactive streams的backpressure
查看>>
android studio 2 3 的maven坑
查看>>
来分享一个我自己写的HTML模板引擎,Leopard
查看>>
基于阿里云数加构建企业级数据分析平台
查看>>
React Native安卓模拟器调出Dev Setting菜单
查看>>
Swift枚举相关值
查看>>
少走弯路,给Java 1~5 年程序员的建议
查看>>
08.Android之View事件问题
查看>>
[ JavaScript ] 数据结构与算法 —— 链表
查看>>
Java程序员幽默爆笑锦集
查看>>
小程序button引导用户授权
查看>>