android中怎么判斷點擊位置是否在指定區(qū)域內(nèi)-創(chuàng)新互聯(lián)

這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)android中怎么判斷點擊位置是否在指定區(qū)域內(nèi),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、寧化ssl等。為近1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的寧化網(wǎng)站制作公司

繪制扇形

要判斷點擊的位置是否是在扇形區(qū)域內(nèi),首先要繪制扇形,繪制扇形的方法可以使用canvas.drawArc()方法。這里介紹的是使用Path的方法,然后調(diào)用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;

}

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

 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;
}

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

android中怎么判斷點擊位置是否在指定區(qū)域內(nèi)

android中怎么判斷點擊位置是否在指定區(qū)域內(nèi)

上述就是小編為大家分享的android中怎么判斷點擊位置是否在指定區(qū)域內(nèi)了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前名稱:android中怎么判斷點擊位置是否在指定區(qū)域內(nèi)-創(chuàng)新互聯(lián)
當前鏈接:http://bm7419.com/article18/dicggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機軟件開發(fā)、品牌網(wǎng)站建設(shè)、定制開發(fā)、手機網(wǎng)站建設(shè)品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)