91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

嘉祥县| 和政县| 房山区| 临西县| 蕉岭县| 巴青县| 安阳市| 祁阳县| 来安县| 大丰市| 临西县| 扎囊县| 上杭县| 清苑县| 永春县| 通州区| 瑞安市| 大新县| 天津市| 磐安县| 祁东县| 合阳县| 苏尼特右旗| 繁昌县| 沛县| 莱阳市| 冷水江市| 美姑县| 琼海市| 汶川县| 梓潼县| 莒南县| 泰和县| 五台县| 赤城县| 边坝县| 富顺县| 闵行区| 通渭县| 莱阳市| 洛南县|