0
A
回答
0
我建議建立一個自定義組件和壓倒一切的onTouch(View, MotionEvent)
。在該方法中,執行一些基本的數學運算來檢查觸摸是否在圓形區域內,當方法消耗觸摸事件時返回true
。
當您不希望使用觸摸事件時,請不要忘記允許其他觸摸偵聽器通過返回false
進行傳播。
+0
thx,如果它是一個簡單的圓圈,我根本沒有問題,但我需要像圖像上的紅色圓圈一樣的形狀 – Gorets
+0
我相信我誤解了這個問題。 –
1
看到https://code.google.com/p/radial-menu-widget/或How To Create a Rotating Wheel Control?或自己
保護無效的onDraw(帆布油畫){// TODO自動生成方法存根
px = getMeasuredWidth()/2;
py = getMeasuredHeight();
initial = 144;
finalangle = 252;
centerCircleradius = 30;
middleCircleRadius = 140;
int init, fina;
init = 160;
fina = 360;
finalOVal.set(px-middleCircleRadius-4, py-middleCircleRadius-4, px+middleCircleRadius+4, py+middleCircleRadius+4);
middleOval.set(px-middleCircleRadius, py-middleCircleRadius, px+middleCircleRadius, py+middleCircleRadius);
while(init<fina)
{
circlePaint.setColor(colors[i]);
canvas.drawArc(finalOVal,init,10,false, circlePaint);
i++;
if(i>=colors.length)
{
i=0;
}
init = init + 10;
}
canvas.drawArc(middleOval, 180, 180, false, pencil);
midInitial = 180;
i=0;
//Creating the first Arc
if(arcTouched[0])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(0), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[1])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(1), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[2])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(2), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
//Creatring the second Arc
if(arcTouched[3])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(3), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
midInitial+=36;
if(arcTouched[4])
{
canvas.drawArc(middleOval, midInitial, 36, true, arcTouchedBack);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
else
{
canvas.drawArc(middleOval, midInitial, 36, true, middleCircleBody);
canvas.drawArc(middleOval, midInitial, 36, true, pencil);
}
canvas.drawBitmap(bitmap.get(4), null, (putBitmapTo(midInitial, 36, 140, px, py)), null);
canvas.drawCircle(px, py-10, 40, pencil);
canvas.drawCircle(px, py-10, 39, smallCircleCore);
canvas.drawCircle(px, py-10, 35, bigArc);
canvas.drawCircle(px, py-10, 20, smallCircleCore);
canvas.drawCircle(px, py-10, 15, bigArc);
canvas.drawLine(px-8, py-10, px+8, py-10, lineCore);
canvas.save();
}
相關問題
- 1. 自定義按鈕與Facebook SDK 4(Android)
- 2. Android按鈕自定義
- 3. Android自定義按鈕
- 4. 自定義按鈕(ANDROID)
- 5. Android的自定義按鈕
- 6. Android自定義按鈕
- 7. android自定義列表視圖與自定義單選按鈕
- 8. +1按鈕與自定義按鈕
- 9. 自定義按鈕欄與自定義後退導航按鈕
- 10. 自定義UITableViewCell與按鈕
- 11. 自定義UINavigationController與按鈕
- 12. 自定義UITableViewCell與按鈕
- 13. 更小的活動區域爲圓形自定義按鈕
- 14. Android中的自定義區域設置
- 15. Android:自定義區域地圖
- 16. Android通知區域自定義
- 17. 如何在Android中只使用中心區域製作自定義按鈕?
- 18. Android - 如何檢測自定義形狀按鈕點擊區域的透明度
- 19. Android自定義按鈕按狀態
- 20. Android - 自定義按鈕卡住「按下」
- 21. android自定義DatePicker - 「確定」按鈕
- 22. Google Geocharts:自定義區域
- 23. 自定義區域主題
- 24. 自定義按鈕
- 25. 自定義按鈕
- 26. 自定義按鈕
- 27. 自定義按鈕
- 28. 自定義按鈕
- 29. 自定義按鈕
- 30. Android,按鈕 - 自定義形狀
你能eloborate你的問題這https://github.com/VadimDev/android-seekbar-like-ipod-clickwheel或只讓 – Naveen
我需要做4個按鈕,我不知道我應該使用什麼樣的小部件 – Gorets
您可以將您的按鈕放置在任何佈局,如線性/相對基於要求 – Naveen