Android 如何创建三维样式按钮

Android 如何创建三维样式按钮,android,Android,嗨,我想在活动中制作一个按钮。我已经创建了一个,但是是二维的 我如何用3D制作 ?它是一个图像按钮 或者是一个样式化的图像 要么是图像按钮 或者是一个样式化的图像 在布局xml文件中创建一个按钮,如下所示- <Button android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="Click me!" /> 我需要查看您的代码,以适当

嗨,我想在活动中制作一个按钮。我已经创建了一个,但是是二维的

我如何用3D制作

它是一个图像按钮


或者是一个样式化的图像

要么是图像按钮


或者是一个样式化的图像

在布局xml文件中创建一个按钮,如下所示-

<Button android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:text="Click me!" />


我需要查看您的代码,以适当地帮助您

在布局xml文件中创建一个按钮,如下所示-

<Button android:layout_height="wrap_content"
        android:layout_width="fill_parent"
        android:text="Click me!" />

我需要查看您的代码,以适当地帮助您

请参见下面的链接: 请参见下面的链接:

在2D按钮中,您使用的是SDK 4.0(或者看起来就是那个),在3D按钮中,您使用的是SDK 2.3.3。谷歌通过不同的安卓版本改变了按钮样式,从1.5版本的3D按钮改为2.2版本,然后在2.3.3版本中变得更加扁平,现在在最新版本中是2D


如果你想在所有Android版本中使用3D按钮,你必须创建自己的按钮样式,制作三个按钮(一个用于按钮按下,一个用于按钮未按下,一个用于按钮未启用),并在XML中声明一个选择器。我建议您按照教程创建自定义按钮。

在2D按钮中,您使用的是SDK 4.0(或者它似乎就是那个按钮),在3D按钮中,您使用的是SDK 2.3.3。谷歌通过不同的安卓版本改变了按钮样式,从1.5版本的3D按钮改为2.2版本,然后在2.3.3版本中变得更加扁平,现在在最新版本中是2D


如果你想在所有Android版本中使用3D按钮,你必须创建自己的按钮样式,制作三个按钮(一个用于按钮按下,一个用于按钮未按下,一个用于按钮未启用),并在XML中声明一个选择器。我建议您按照教程创建自定义按钮。

在这篇文章中,我找到了一个很好的3D按钮解决方案:

layout/activity\u main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:gravity="center" tools:context=".MainActivity">
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="corner_radius">5dp</dimen>
    <dimen name="layer_padding">10dp</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botao_sombra" />

    <item android:bottom="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/azul" />
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/botao_pressionado" android:paddingTop="10sp"></item>
    <item android:drawable="@drawable/botao_normal" android:layout_marginTop="50dp">
    </item>
</selector>
<?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="#00000000"/>
        </shape>
    </item>


    <item android:top="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/Azul" />
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="@dimen/corner_radius" />
    <solid android:color="@color/AzulEscuro" />
</shape>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botao_sombra" />

    <item android:bottom="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/Azul" />
        </shape>
    </item>
</layer-list>

参考资料:

在这篇文章中,我找到了一个很好的3D按钮解决方案:

layout/activity\u main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:gravity="center" tools:context=".MainActivity">
<resources>
    <!-- Default screen margins, per the Android Design guidelines. -->
    <dimen name="activity_horizontal_margin">16dp</dimen>
    <dimen name="activity_vertical_margin">16dp</dimen>
    <dimen name="corner_radius">5dp</dimen>
    <dimen name="layer_padding">10dp</dimen>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botao_sombra" />

    <item android:bottom="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/azul" />
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/botao_pressionado" android:paddingTop="10sp"></item>
    <item android:drawable="@drawable/botao_normal" android:layout_marginTop="50dp">
    </item>
</selector>
<?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="#00000000"/>
        </shape>
    </item>


    <item android:top="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/Azul" />
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="@dimen/corner_radius" />
    <solid android:color="@color/AzulEscuro" />
</shape>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/botao_sombra" />

    <item android:bottom="@dimen/layer_padding">
        <shape android:shape="rectangle">
            <corners android:radius="@dimen/corner_radius" />
            <solid android:color="@color/Azul" />
        </shape>
    </item>
</layer-list>

参考:

渐变标签允许在您的绘图表中使用颜色渐变,您可以使用它制作3d样式按钮

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#EAEAEA"
        android:endColor="#979797" />
    <corners android:radius="3dp" />
</shape>


渐变标签允许在绘图表中使用颜色渐变,您可以使用它制作3d样式按钮

<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#EAEAEA"
        android:endColor="#979797" />
    <corners android:radius="3dp" />
</shape>


Dude告诉我如何使用该教程,即我是否必须创建一个新的xml文件,我在哪里保存该文件以及如何添加主活动是的,将它们作为xml保存在drawable文件夹中,然后保存在main.xml中,在那里有按钮的代码。写入按钮属性:android:background=“@drawable/bluebutton”像这样。顺便说一句,您的2d按钮来自android 4.0API,因此它是4.0样式。他们很好^^^都德告诉我如何使用该教程,即我是否必须创建一个新的xml文件,我在哪里保存该文件以及如何添加主活动是的,将它们保存为可绘图文件夹中的xml,然后保存在main.xml中,在那里您有按钮的代码。写入按钮属性:android:background=“@drawable/bluebutton”像这样。顺便说一句,您的2d按钮来自android 4.0API,因此它是4.0样式。它们很好^^^我的代码是我的代码是我的代码是使用android:background属性设置的背景。让背景作为选择器。选择器可以帮助您根据不同的状态提供不同的背景。就像你可以有一个用于按下状态,一个用于不按下状态。这有帮助吗?我的代码是使用android:background属性设置背景的。让背景作为选择器。选择器可以帮助您根据不同的状态提供不同的背景。就像你可以有一个用于按下状态,一个用于不按下状态。这有帮助吗?说得好,这只是对sdk的依赖+1这个@Arshay可以标记这一点,因为answerwell说它只依赖sdk+1这个@Arshay可以将其标记为答案