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

首頁 > 學院 > 開發設計 > 正文

自定義圓繼承button實現多點觸控和單點觸控

2019-11-09 14:32:48
字體:
來源:轉載
供稿:網友

//                      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;        //創建畫筆        mpaint = new Paint();        mpaint.setAntiAlias(true);        mpaint.setStrokeWidth(5);//繪制圓的寬度        mpaint.setStyle(Paint.Style.FILL);        mpaint.setColor(Color.RED);        //開始畫圓        canvas.drawCircle(x,y,radio,mpaint);    }    public boolean onTouchEvent(MotionEvent event) {        //多點觸控        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:                //拋異常  要不然會報錯                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;        }        //單點觸控        switch (event.getAction()) {            case MotionEvent.ACTION_DOWN:                Toast.makeText(getContext(),"點擊",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;    }}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嵊泗县| 什邡市| 莎车县| 马关县| 大宁县| 太和县| 青河县| 商丘市| 镇坪县| 鹤壁市| 三穗县| 清水县| 渭源县| 太白县| 贡山| 临潭县| 麟游县| 淳安县| 永平县| 玉山县| 汽车| 新丰县| 濉溪县| 视频| 南陵县| 神农架林区| 汕尾市| 雷波县| 海原县| 白山市| 顺昌县| 友谊县| 云和县| 太原市| 偏关县| 长顺县| 宝坻区| 罗甸县| 徐汇区| 洛扎县| 抚远县|