成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

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

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

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

繪制扇形

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

主要代碼如下:

@Override
  protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    //將畫布的坐標(biāo)原點(diǎn)移到圓心位置
    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;

}

獲取點(diǎn)擊位置,判斷是否在扇形內(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;
}

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

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

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

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

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

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

廣告

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

成都定制網(wǎng)站建設(shè)
广东省| 高邮市| 合山市| 平凉市| 涡阳县| 盐山县| 屏东县| 涞水县| 黄梅县| 兴义市| 营口市| 新民市| 托克逊县| 杭锦后旗| 扶余县| 贺州市| 延安市| 保康县| 崇礼县| 安陆市| 当雄县| 土默特右旗| 凉山| 隆昌县| 朝阳区| 台山市| 嘉义市| 邵武市| 香格里拉县| 天镇县| 文成县| 长沙县| 易门县| 广南县| 北流市| 三亚市| 靖江市| 晋州市| 西藏| 普定县| 榕江县|