【问题标题】:Android custom shape for zoom buttons缩放按钮的Android自定义形状
【发布时间】:2026-01-27 10:20:02
【问题描述】:

我对 Android UI 有点陌生,但我想知道存档此类内容的最佳方式是什么?我唯一的图标是“加号”和“减号”。

有没有办法使用自定义可绘制形状来构建这个“半圆形”形状? (所以它是两个形状,所以“加号”和“减号”是两个不同的动作

【问题讨论】:

    标签: android drawable shape


    【解决方案1】:

    是的,您可以创建这样的形状:

    <!--roundbox-->
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#999999" />
        <stroke android:color="#000000" />
        <corners android:radius="@dimen/round_button_size" />
    </shape>
    

    在布局中:

    <LinearLayout
        android:layout_width="@dimen/round_button_size"
        android:layout_height="100dp"
        android:orientation="vertical"
        android:weightSum="2"
        android:background="@drawable/roundbox">
    
        <Button
            android:id="@+id/plus_button"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:src="@drawable/plus" />
    
        <View
            android:layout_width="match_parent"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_height="1dp" android:background="#000" />
    
        <Button
            android:id="@+id/minus_button"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"
            android:src="@drawable/minus" />
    
    </LinearLayout>
    

    还在dimens.xml文件中添加了这个:

    <dimen name="round_button_size">50dp</dimen>
    

    如果你真的想要两个不同的形状:

    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#999999" />
        <stroke android:color="#000000" />
        <corners android:topLeftRadius="@dimen/round_button_size" android:topRightRadius="@dimen/round_button_size"/>
    </shape>
    

    和:

    <Button
        android:src="@drawable/plus"
        android:layout_width="@dimen/round_button_size"
        android:layout_height="55dp"
        android:background="@drawable/round_button"/>
    

    【讨论】:

    • 我明白了。在我的情况下,虽然加号和减号是两个不同的动作。
    • 只需将它们添加到线性布局中,请编辑答案
    • 再次检查我的答案
    • 我已将 Button 替换为 ImageView,因为它只是显示一个灰色框。但是我对drawable有了大致的了解。谢谢!