关闭

自定义View(单点触控)

165人阅读 评论(0) 收藏 举报

XML布局中

<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.day01_view.Myview
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

MyView类中

package com.example.day01_view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;

public class Myview extends View {

    // 画笔
    Paint paint = new Paint();

    // 屏幕大小
    private int with;
    private int heigh;

    // 圆心的位置
    private float centryx;
    private float centryy;

    public Myview(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
    }

    public Myview(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
    }

    public Myview(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }

    // 设置view宽和高
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        // TODO Auto-generated method stub
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        with = MeasureSpec.getSize(widthMeasureSpec);
        heigh = MeasureSpec.getSize(heightMeasureSpec);
        //圆的位置
        centryx = with / 2;
        centryy = heigh / 2;
        Log.i("View", with + "   " + heigh);
    }

    // 画布
    @Override
    protected void onDraw(Canvas canvas) {
        // TODO Auto-generated method stub
        super.onDraw(canvas);
        // 设置圆的半径
        float radius = (with - 200) / 2;

        // //圆心位置
        // centryx = with / 2;
        // centryy = heigh / 2;
        // 设置画笔的颜色
        paint.setColor(Color.RED);
        // // 设置圆的样式
        // // FILL实心
        // // STROKE空心
        // paint.setStyle(Style.STROKE);
        // // 设置圆的边距
        // paint.setStrokeWidth(20);
        // 抗锯齿
        paint.setAntiAlias(true);

        // 通过画布调用画圆的方法
        canvas.drawCircle(centryx, centryy, radius, paint);
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right,
            int bottom) {
        // TODO Auto-generated method stub
        super.onLayout(changed, left, top, right, bottom);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:

            break;
        case MotionEvent.ACTION_MOVE:
            centryx = event.getX();
            centryy = event.getY();

            // 重新绘制
            postInvalidate();

            break;
        case MotionEvent.ACTION_UP:

            break;

        default:
            break;
        }

        return true;
    }
}
0
0
查看评论

android开发之单点触摸

相对于多点触摸,单点触摸还是很简单的。 新建一个工程,先看看布局文件:<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http...
  • u012702547
  • u012702547
  • 2015-05-15 20:13
  • 7020

多点触控与单点触控

private ImageView mImageView; private Matrix matrix = new Matrix(); private Matrix savedMatrix = new Matrix(); private static final int NONE = 0; ...
  • puhuacairang
  • puhuacairang
  • 2016-07-07 14:22
  • 312

单点触控、多点触控和自定义控件的使用

单点触控的使用比如图片的位移、旋转,透明,缩放等. 多点触控的使用Android多点触控的本质:需要LCD驱动和保存程序本身设计上的支持 市场上的应用:HTC、Motorota和Samsung等知名厂商只要使用电容屏触控手机等多支持多点触控原理 注意:Android的多点触控功能需要运行在Andro...
  • liu_jing_hui
  • liu_jing_hui
  • 2016-08-25 14:23
  • 585

Android单点触控技术,对图片进行平移,缩放,旋转操作

相信大家使用多点对图片进行缩放,平移的操作很熟悉了,大部分大图的浏览都具有此功能,有些app还可以对图片进行旋转操作,QQ的大图浏览就可以对图片进行旋转操作,大家都知道对图片进行缩放,平移,旋转等操作可以使用Matrix来实现,Matrix就是一个3X3的矩阵,对图片的处理可分为四个基础变换操作,T...
  • xiaanming
  • xiaanming
  • 2015-01-19 08:42
  • 40546

COCOS学习笔记--单点触控

最近在看曹世博老师关于cocos引擎的学习教程,打算重新再系统梳理一下cocos相关的知识结构,学习之余把自己的一些收获和理解总结记录下来,方便日后自己回顾并同时希望本笔记可以对各位cocos学习者有所帮助,相关技术上博主理解如有偏颇,还请指正: 视频地址:http://edu.csdn.net/...
  • gzy252050968
  • gzy252050968
  • 2016-01-16 15:58
  • 1754

Android自定义View,单点触控小球,自定义Imageview圆形图片

自定义Line.java package com.bawei.brush; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import a...
  • LM_ZP
  • LM_ZP
  • 2016-05-12 09:30
  • 285

自定义圆加载进度单点触控

//布局文件 xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" xmlns:too...
  • hangge_
  • hangge_
  • 2017-02-10 10:29
  • 162

自定义圆形进度条 自定义属性 单点触控

package com.example.administrator.myapplication; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canva...
  • qq_36271706
  • qq_36271706
  • 2017-02-09 19:14
  • 55

单点触控

package com.bw.day01_view.view; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.gr...
  • qq_34542275
  • qq_34542275
  • 2016-05-12 21:07
  • 89

iOS开发笔记之多点触控(四) 可靠的多点触控,为每个View分配唯一触摸对象

每个View需要分配有效的触摸以避免第三方触摸的干扰。实现方法如下 .h文件,接口定义两个变量 #import @interface BBSViewController : UIViewController { UITouch *touch1; UITouch *touch2; ...
  • u010197185
  • u010197185
  • 2014-01-16 23:50
  • 1408
    个人资料
    • 访问:10240次
    • 积分:432
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:4篇
    • 译文:1篇
    • 评论:0条