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

溫馨提示×

溫馨提示×

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

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

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

發布時間:2022-04-13 16:07:18 來源:億速云 閱讀:190 作者:iii 欄目:編程語言

這篇文章主要講解了“android中如何判斷點擊位置是否在指定區域內”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“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中如何判斷點擊位置是否在指定區域內”的內容了,經過本文的學習后,相信大家對android中如何判斷點擊位置是否在指定區域內這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

桃源县| 河西区| 甘德县| 铁岭县| 宁远县| 日照市| 仙居县| 靖江市| 和硕县| 莱阳市| 彰化市| 浏阳市| 赞皇县| 定陶县| 南华县| 凌源市| 静安区| 兴业县| 商洛市| 会宁县| 郸城县| 县级市| 尉犁县| 通道| 怀来县| 吴江市| 南雄市| 岑巩县| 日土县| 清远市| 梧州市| 启东市| 刚察县| 陆丰市| 高安市| 土默特右旗| 榕江县| 阿鲁科尔沁旗| 龙岩市| 凤翔县| 仙居县|