4

如何制作自定义 圆形按钮?(只点击圆圈)

有没有办法用圆形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

4 回答 4

4

它非常简单。创建一个可绘制的自定义形状并将其设置为视图的背景。例子:

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"
/>
于 2013-06-06T03:02:28.700 回答
0

另一种方法是扩展Button和覆盖它的方法然后你可以在using方法onDraw上画一个圆圈。canvascanvas.drawCircle

您还可以使用方法circle.png在画布上绘制文件Drawable.draw

于 2012-08-03T08:57:49.250 回答
0

有可以为您服务的ImageButton类..

于 2012-08-03T08:57:49.980 回答
0

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

于 2012-08-03T09:15:10.527 回答