中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

android中怎么判斷點擊位置是否在指定區域內

發布時間:2021-06-27 13:42:57 來源:億速云 閱讀:1777 作者:Leah 欄目:移動開發

這期內容當中小編將會給大家帶來有關android中怎么判斷點擊位置是否在指定區域內,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

繪制扇形

要判斷點擊的位置是否是在扇形區域內,首先要繪制扇形,繪制扇形的方法可以使用canvas.drawArc()方法。這里介紹的是使用Path的方法,然后調用canvas.drawPath(ovalPath,paint);方法來進行繪制。

主要代碼如下:

@Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    //將畫布的坐標原點移到圓心位置
    canvas.translate((getWidth() + getPaddingLeft() - getPaddingRight()) / 2,
        (getHeight() + getPaddingTop() - getPaddingBottom()) / 2);

    ovalPath.moveTo(0, 0);
    ovalPath.lineTo(100, 0);
    RectF oval = new RectF(-100,-100,100,100);
    ovalPath.addArc(oval, 0, 160);
    ovalPath.lineTo(0, 0);
    ovalPath.close();
    RectF r = new RectF();
    ovalPath.computeBounds(r, true);
    mRegion.setPath(ovalPath, new Region((int)r.left, (int) r.top, (int) r.right,(int)r.bottom));
    Paint paint = new Paint();
    paint.setColor(Color.RED);
    paint.setAntiAlias(true);
    paint.setStrokeWidth(1);
    paint.setStyle(Paint.Style.STROKE);
    canvas.drawPath(ovalPath,paint);
    mCenterCircleX = (getWidth() + getPaddingLeft() - getPaddingRight()) / 2;
    mCenterCircleY = (getHeight() + getPaddingTop() - getPaddingBottom()) / 2;

}

獲取點擊位置,判斷是否在扇形內的方法如下:

 public boolean onTouchEvent(MotionEvent event) {
    float x;
    float y;
    switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
        x = event.getX()-mCenterCircleX;
        y = event.getY()-mCenterCircleY;
        boolean b = mRegion.contains((int) x, (int) y);
        Log.d(TAG, "onTouchEvent: b: "+b +" x: "+ x+" y: "+y);
        break;

    }
    return true;
}

這里要注意的是:獲取點擊位置后,要減去坐標的偏移量,否則將得不到正確的結果。

android中怎么判斷點擊位置是否在指定區域內

android中怎么判斷點擊位置是否在指定區域內

上述就是小編為大家分享的android中怎么判斷點擊位置是否在指定區域內了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蒲城县| 海盐县| 山东省| 叙永县| 富宁县| 宣恩县| 丰县| 股票| 资溪县| 五寨县| 祁阳县| 奉新县| 温宿县| 宜春市| 乳源| 奈曼旗| 澄迈县| 连云港市| 凉城县| 丰城市| 田阳县| 灵武市| 偏关县| 南昌市| 信丰县| 虎林市| 饶河县| 基隆市| 华池县| 洛川县| 松滋市| 扎兰屯市| 沙雅县| 长葛市| 广东省| 梅河口市| 阿克苏市| 吉木乃县| 宁陵县| 大安市| 县级市|