国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

自定義圓繼承button實(shí)現(xiàn)多點(diǎn)觸控和單點(diǎn)觸控

2019-11-09 13:49:48
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

//                      xml的部分 自定義控件之后要在xml中引用

<?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:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="com.bw.u.day_03duodianchukong.MainActivity">    <com.bw.u.day_03duodianchukong.MyView    android:layout_width="match_parent"    android:layout_height="match_parent" /></RelativeLayout>        繼承button的部分

package com.bw.u.day_03duodianchukong;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.widget.Button;import android.widget.Toast;public class MyView extends Button{    PRivate  float x=202;    private  float y=317;    private Paint mpaint;    private int width;    private float radius=5;    private float x_s_old;    private float y_s_old;    private float x_s_new;    private float y_s_new;    private float old=0;    private float ne1=0;    private float round=50;    public MyView(Context context) {        this(context,null);    }    public MyView(Context context, AttributeSet attrs) {        this(context, attrs,R.style.APPTheme);    }    public MyView(Context context, AttributeSet attrs, int defStyleAttr) {        super(context, attrs, defStyleAttr);    }    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        width = getWidth();        int radio = 60;        //創(chuàng)建畫(huà)筆        mpaint = new Paint();        mpaint.setAntiAlias(true);        mpaint.setStrokeWidth(5);//繪制圓的寬度        mpaint.setStyle(Paint.Style.FILL);        mpaint.setColor(Color.RED);        //開(kāi)始畫(huà)圓        canvas.drawCircle(x,y,radio,mpaint);    }    public boolean onTouchEvent(MotionEvent event) {        //多點(diǎn)觸控        switch (event.getAction()&event.ACTION_MASK){            case MotionEvent.ACTION_POINTER_DOWN:                x_s_old=event.getX(0)-event.getX(1);                y_s_old=event.getY(0)-event.getY(1);                old=(float) Math.sqrt(x_s_old*x_s_old+y_s_old*y_s_old);                break;            case MotionEvent.ACTION_MOVE:                //拋異常  要不然會(huì)報(bào)錯(cuò)                try {                    x_s_new=event.getX(event.getPointerId(0))-event.getX(event.getPointerId(1));                    y_s_new=event.getY(event.getPointerId(0))-event.getY(event.getPointerId(1));                    ne1=(float) Math.sqrt(x_s_new*x_s_new+y_s_new*y_s_new);                }catch (IllegalArgumentException e){                    e.printStackTrace();                }                if(ne1>old){                    float side=round+3;                    round=side;                    round=side;                    Log.i("aaa", round+"");                }else if(ne1<old){                    float side=round-3;                    round=side;                }                invalidate();                break;            case MotionEvent.ACTION_UP:                break;        }        //單點(diǎn)觸控        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                Toast.makeText(getContext(),"點(diǎn)擊",Toast.LENGTH_SHORT).show();                break;            case MotionEvent.ACTION_MOVE:                float x_t=event.getX();                float y_t=event.getY();                float t=(x_t-x)*(x_t-x)+(y_t-y)*(y_t-y);                float sqrt = (float) Math.sqrt(t);                if(sqrt<=50){                    x=event.getX();                    y=event.getY();                    invalidate();                }                break;            case MotionEvent.ACTION_UP:                break;        }        return true;    }}


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 从江县| 开鲁县| 双柏县| 万年县| 龙州县| 托克逊县| 腾冲县| 凌源市| 麻阳| 连南| 安多县| 桓仁| 苏尼特右旗| 昌都县| 清镇市| 昌邑市| 遵化市| 右玉县| 富源县| 奉贤区| 沭阳县| 蚌埠市| 自治县| 长葛市| 鄂伦春自治旗| 来凤县| 迭部县| 北安市| 宝丰县| 和龙市| 腾冲县| 桃江县| 台前县| 石家庄市| 新乡市| 清镇市| 沧源| 宜兴市| 沈阳市| 苏尼特左旗| 阳谷县|