Android Circle按钮

时间:2012-08-03 08:52:46

标签: android button

如何制作自定义圈子按钮? (仅点击圈子)

有没有办法用圆圈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;
}

感谢。

4 个答案:

答案 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)

不要选择复杂的逻辑只需选择任何圆形图像并将该图像设置为简单按钮的背景,它将看起来像简单的圆形按钮,它只接受点击该圆形的形状。