Android 安卓材质设计按钮-预棒棒糖

Android 安卓材质设计按钮-预棒棒糖,android,button,material-design,Android,Button,Material Design,如何实现谷歌材料设计指南中描述的“凸起按钮”和“扁平按钮” 凸起的按钮为大部分平面布局添加尺寸。他们强调> 在繁忙或宽阔的空间上运行 为工具栏和对话框使用平面按钮,以避免过度分层 来源:这需要安卓5.0 升起按钮 从Widget.Material.button继承您的按钮样式,将自动应用标准的提升和提升操作 <style name="Your.Button" parent="android:style/Widget.Material.Button"> <item

如何实现谷歌材料设计指南中描述的“凸起按钮”和“扁平按钮”


凸起的按钮为大部分平面布局添加尺寸。他们强调> 在繁忙或宽阔的空间上运行


为工具栏和对话框使用平面按钮,以避免过度分层

来源:

这需要安卓5.0

升起按钮

从Widget.Material.button继承您的按钮样式,将自动应用标准的提升和提升操作

<style name="Your.Button" parent="android:style/Widget.Material.Button">
    <item name="android:background">@drawable/raised_button_background</item>
</style>
平面按钮

编辑:您应该使用以下Stephen Kaiser给出的建议,而不是我之前关于平面按钮的建议:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="DONE"
    style="?android:attr/borderlessButtonStyle"
/>

我用它作为AppCompat按钮的背景,它描绘了一个凸起的按钮(带有涟漪),希望能有所帮助

myRaisedButton.xml-在
drawable
文件夹中:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
               android:shape="rectangle">
            <solid android:color="@color/yourColor"/>
            <corners android:radius="6dp"/>
        </shape>
    </item>
    <item android:drawable="?android:selectableItemBackground"/>
</layer-list>

为了实现平面按钮,您只需添加
style=“?android:attr/borderlessButtonStyle”

例如:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="DONE"
    style="?android:attr/borderlessButtonStyle"
    />


对于属性。

您可能还需要为按钮添加底部边距,以便能够看到凸起的按钮阴影效果:

<item name="android:layout_marginBottom">@dimen/activity_vertical_margin</item>
<item name="android:elevation">1dp</item>
@dimen/activity\u垂直\u边距
1dp

有关如何使用appcompat库执行此操作的说明,请查看我对另一个问题的回答:


这将展示如何在Android 5.0和更早版本(最高API级别11)中使用凸起和扁平按钮

我正在开发一个材质兼容性库。button类支持动画阴影和触摸波纹。也许你会发现它很有用。这是您要求的

材质设计按钮库-您得到了它-

您可以使用。这是第三方图书馆

这是一个包含Android L组件的库,供您在Android 2.2中使用
如果要使用此库,只需下载MaterialDesign项目,将其导入工作区,并将项目作为库添加到android项目设置中。

在何处使用此xml?在drawable文件夹中?是的,将其命名为myRaisedButton.xml,并使用android:background=“@drawable/myRaisedButton”从布局中访问它,谢谢,它可以工作!我不得不删除最后一行,因为我遇到了一个异常,如何修复它?很抱歉,但是我在使用xml中的样式时仍然存在问题。为什么要使styles.xml文件指向相同的样式(“AppTheme.Base”)?我看不到这里添加的功能…这段代码生成了一个异常,并且没有创建一个凸起的按钮。谢谢你,很抱歉回答得太晚。有没有办法通过支持库达到同样的效果?我从theme.AppCompat.Light.DarkActionBar继承了我的主题,在Android Studio中,我可以看到凸起的按钮,但我想要,但是当我在手机上运行应用程序(api 17)时,我看到了通常的按钮。在棒棒糖制作前,有什么方法可以让凸起的按钮样式工作?即使是假的样式?禁用/启用状态看起来都一样。如何解决这个问题?为什么在使用材质设计时,平面(无边框)按钮不使用强调色样式?最好使用buttonBarButtonStyle?@lostintranslation,因为在AppCompat基本主题中,
无边框ButtonStyle
设置为
@style/Widget.AppCompat.Button.Borderless
。如果你想让它调出强调色,请将主题中的
无边框按钮样式设置为
@style/Widget.AppCompat.Button.Borderless.Colored
.facility,它支持返回API级别11。@StephenKaiser提升的按钮如何?
style=“@style/Widget.AppCompat.Button.Borderless”
当使用AppCompat Library时,最好的解决方案可能是重复的,也许这应该是重复的(我不清楚)。但是这个接近的理由是错误的。伙计,这太棒了。如何通过gradle包含aar库?我想知道,在现实应用程序中使用它有多稳定?您是否有过与按钮:阴影/涟漪相关的崩溃?谢谢,我正在真实的项目中测试它,并尽我最大的努力使它工作。该库正在进行大量开发,我正试图在24小时内修复所有报告的bug。在大多数情况下,库不会崩溃,而是会产生动画小故障或只是延迟。目前最大的两个问题是1。缺少渲染线程(在棒棒糖中引入)和2。与所有GPU和UI兼容(例如Galaxy系列中使用的TouchWiz)。如果你有任何其他问题,你想问一个功能或报告一个错误,请随时与我联系。我刚刚更新了我博客上的“关于”页面,使之更简单。style=“?android:attr/borderlessButtonStyle”不是appCompat样式。您的答案仅对API>11有效
<resources>

    <style name="AppTheme" parent="AppTheme.Base"/>
    <style name="AppTheme.Base" parent="Theme.AppCompat">

</resources>
...
<style name="AppTheme" parent="AppTheme.Base">
...
android:background="@drawable/myRaisedButton"
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="DONE"
    style="?android:attr/borderlessButtonStyle"
    />
<item name="android:layout_marginBottom">@dimen/activity_vertical_margin</item>
<item name="android:elevation">1dp</item>