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

繪制扇形
要判斷點擊的位置是否是在扇形區(qū)域內,首先要繪制扇形,繪制扇形的方法可以使用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中怎么判斷點擊位置是否在指定區(qū)域內了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
當前名稱:android中怎么判斷點擊位置是否在指定區(qū)域內-創(chuàng)新互聯(lián)
當前鏈接:http://www.chinadenli.net/article18/dicggp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、軟件開發(fā)、品牌網(wǎng)站建設、定制開發(fā)、手機網(wǎng)站建設、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容