如何制作自定义圈子按钮? (仅点击圈子)
有没有办法用圆圈png文件制作?
我尝试使用imageView覆盖onTouch方法,但它的工作非常糟糕,因为view.getWidth(),view.getHeight()和view.getTop ...方法工作非常糟糕
public boolean inCircle(MotionEvent e, int radius, int x, int y) {
int dx = (int) (e.getX() - x);
int dy = (int) (e.getY() - y);
double d = Math.sqrt((dx * dx) + (dy * dy));
if (d < radius)
return true;
return false;
}
感谢。
答案 0 :(得分:3)
非常简单。创建自定义形状drawable并将其设置为视图的背景。例如:
drawable /
中的round_button_drawable.xml<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@android:color/holo_orange_dark"/>
</shape>
将此drawable设置为任何视图的背景。
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/round_button_drawable"
android:text="btn"
/>
答案 1 :(得分:-1)
另一种方法是扩展Button
并覆盖其onDraw
方法
然后,您可以使用canvas
方法在canvas.drawCircle
上绘制一个圆圈。
您还可以使用circle.png
方法
Drawable.draw
文件
答案 2 :(得分:-1)
有ImageButton课程可以满足您的目的..
答案 3 :(得分:-1)
不要选择复杂的逻辑只需选择任何圆形图像并将该图像设置为简单按钮的背景,它将看起来像简单的圆形按钮,它只接受点击该圆形的形状。