【问题标题】:Android Layout: Creating a circular 3D button?Android 布局:创建圆形 3D 按钮?
【发布时间】:2014-08-19 01:45:14
【问题描述】:

在我当前的 android 布局中,我有 5 个透明按钮。

我希望将它们的形状更改为完全圆形并为它们添加 3d 效果,就像this question 接受的答案中的阴影一样

我该怎么做?

目前的样子:

Android xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
     android:background="@drawable/menubackground" >


    <Button
        android:id="@+id/btnSearchHomeDate"
         android:layout_width="270dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:background="@drawable/circle2"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="10"
        android:text="Date"
        android:textSize="30sp" />

    <Button
        android:id="@+id/btnSearchHomeGame"
        android:layout_width="270dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:background="@drawable/circle2"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="10"
        android:text="Game"
        android:textSize="30sp" />

    <Button
        android:id="@+id/btnSearchHomeMedValues"
        android:layout_width="270dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:background="@drawable/circle2"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="5"
        android:text="Meditation Values"
        android:textSize="30sp" />

    <Button
        android:id="@+id/btnSearchHomeAttValues"
        android:layout_width="270dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:background="@drawable/circle2"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="5"
        android:text="Attention Values"
        android:textSize="30sp" />

    <Button
        android:id="@+id/btnSearchHomeScore"
        android:layout_width="270dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
        android:background="@drawable/circle2"
        android:shadowColor="#A8A8A8"
        android:shadowDx="0"
        android:shadowDy="0"
        android:shadowRadius="5"
        android:text="Score"
        android:textSize="30sp" />

</LinearLayout>

Circle2 可绘制对象:

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape 
            android:shape="rectangle" >
            <solid android:color="#0000" />
            <stroke
                android:width="1dp"
                android:color="@android:color/black" />
            <padding
                android:left="0.9dp"
                android:right="0.9dp"
                android:top="0.9dp"
                android:bottom="0.9dp"/>
            <corners android:radius="8dp" />
        </shape>
    </item>
    <item>
            <shape 
                android:shape="rectangle" >
                <solid android:color="#0000" />
                <stroke
                    android:width="1dp"
                    android:color="#4a6176" />
                <padding
                    android:left="10dp"
                    android:right="10dp"/>
                <corners android:radius="8dp" />
            </shape>
    </item>
</layer-list>

【问题讨论】:

    标签: android android-layout geometry android-button


    【解决方案1】:

    好的,首先在你的drawable文件夹中创建一个btn_blue.xml文件

    把这段代码放在上面

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true" >
            <shape>
                <solid
                    android:color="#449def" />
                <stroke
                    android:width="1dp"
                    android:color="#2f6699" />
                <corners
                    android:radius="3dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>
        <item>
            <shape>
                <gradient
                    android:startColor="#449def"
                    android:endColor="#2f6699"
                    android:angle="270" />
                <stroke
                    android:width="1dp"
                    android:color="#2f6699" />
                <corners
                    android:radius="4dp" />
                <padding
                    android:left="10dp"
                    android:top="10dp"
                    android:right="10dp"
                    android:bottom="10dp" />
            </shape>
        </item>
    </selector>
    

    现在在按钮一侧

    设置

        android:background="@drawable/btn_blue"
    

    它会给你那种观点

    希望对你有帮助

    【讨论】:

    • 这没有回答问题?我希望按钮是圆形的、透明的和 3d 的?
    • 请粘贴一张您想要的 3d 按钮图片。您是否也尝试过您在问题中提到的链接?
    • 对于透明颜色,尝试在任何颜色的十六进制之前添加 #00,例如 #00ffffff
    猜你喜欢
    • 2011-10-13
    • 1970-01-01
    • 2020-05-25
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多