安卓自定义形状缩放按钮

3

我对Android UI还不太熟悉,但我想知道实现这样的效果最好的方法是什么?我只有'加号'和'减号'两个图标。

enter image description here

有没有一种使用自定义可绘制形状来构建这个“半圆形”形状的方法?(因此它将是两个形状,使“加号”和“减号”成为两个不同的操作)

1个回答

2

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

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

我明白了。但在我的情况下,加号和减号是两个不同的操作。 - Johny19
只需将它们添加到LinearLayout中,我会编辑答案。 - Pedro Cardoso
请重新检查我的答案 - Pedro Cardoso
我已经将按钮(Button)替换为ImageView,因为它只是显示一个灰色的框。但是我通过drawable得到了一般的想法。谢谢! - Johny19

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接