Android 缩放按钮的自定义形状

Android custom shape for zoom buttons

我对 Android UI 有点陌生,但我想知道存档此类内容的最佳方式是什么?我唯一的图标是 'plus' 和 'minus'.

是否可以使用自定义可绘制形状来构建此 'half circle' 形状? (因此它将是两个形状,因此 'plus' 和 'minus' 是两个不同的动作

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

<!--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"/>