【问题标题】:Android Circle buttonAndroid 圆圈按钮
【发布时间】:2012-08-03 08:52:45
【问题描述】:

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

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

谢谢。

【问题讨论】:

标签: android button


【解决方案1】:

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

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>

将此可绘制对象设置为任何视图的背景。

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_button_drawable"
    android:text="btn"
/>

【讨论】:

    【解决方案2】:

    另一种方法是扩展 Button 并覆盖其 onDraw 方法 然后,您可以使用canvas.drawCircle 方法在canvas 上画一个圆圈。

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

    【讨论】:

    • 恕我直言,建议太复杂了.. :S 他还需要实现重绘以更改按钮状态吗?为什么要发明已经发明的轮子?
    • 我只是给了他另一个选择。
    • 已批准 ;) 不要误会我的意思,我只是认为有更简单的解决方案 ;) 干杯
    • 是的,我同意这可能有点矫枉过正
    • 我的圆形按钮下方有按钮,我需要让它们也可点击
    【解决方案3】:

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

    【讨论】:

    • 我的圆形按钮下方有按钮,我需要让它们也可点击
    • 圆形按钮下的按钮是什么意思...?
    【解决方案4】:

    有ImageButton 类可以为您服务..

    【讨论】:

    • 发疯并对所有答案投反对票的人应该评论问题是什么
    猜你喜欢
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 2021-08-27
    • 1970-01-01
    相关资源
    最近更新 更多