📌  相关文章
📜  材料设计android依赖androidx - Java(1)

📅  最后修改于: 2023-12-03 14:55:28.163000             🧑  作者: Mango

材料设计 Android 依赖 AndroidX - Java

简介

材料设计是由谷歌提出的一种设计风格,旨在创造更加精美、连贯和有分层次的设计。在 Android 中,除了支持传统的控件外,还提供了许多材料化控件以及相关依赖库。而 AndroidX 则是 Android 官方提供的一个支持库,旨在提供向后兼容的新功能以及对 Jetpack 库的扩展支持。

AndroidX 库

为了使开发者能够更好地使用材料化控件,Android 官方在 Jetpack 库中提供了许多支持材料设计的库:

  • com.google.android.material:material - 材料化控件库,如卡片、按钮、文本框等。
  • com.google.android.material:material-icons - 包含许多材料化风格的图标。
  • com.google.android.material:material-ripple - 材料化波浪效果的实现库。
  • 等等...

这些库的使用方法跟其他的依赖库一样,只需在 app 的 build.gradle 文件中添加依赖即可:

dependencies {
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'com.google.android.material:material-icons:1.4.0'
    implementation 'com.google.android.material:material-ripple:1.4.0'
}
材料化控件的使用

在引入材料化控件库之后,就可以开始使用材料化控件了。这里以材料化按钮(MaterialButton)为例:

<com.google.android.material.button.MaterialButton
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="材料化按钮"
    app:cornerRadius="8dp" />

在使用时,可以通过设置按钮的属性来控制按钮的样式,例如设置圆角半径、背景色、图标等等:

<com.google.android.material.button.MaterialButton
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="材料化按钮"
    app:cornerRadius="8dp"
    app:icon="@drawable/ic_search"
    app:iconGravity="textStart"
    app:iconPadding="8dp"
    app:backgroundTint="@color/button_background"
    app:rippleColor="@color/button_ripple_color"
    app:textColor="@color/button_text_color" />
材料化主题的设置

为了使应用具有更加一致的样式,可以将应用的主题设置为材料化主题样式。在应用的主题样式中,可以指定颜色、字体、材料化控件的样式等等:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>

        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>

        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>

        <!-- Customize your theme here. -->
        <item name="fontFamily">@font/roboto</item>
        <item name="materialButtonStyle">@style/MyMaterialButtonStyle</item>
    </style>

    <style name="MyMaterialButtonStyle" parent="Widget.MaterialComponents.Button">
        <item name="android:textSize">16sp</item>
        <item name="backgroundTint">@color/button_background</item>
    </style>
</resources>
总结

使用材料化控件可以给应用带来更美观、一致的界面风格,同时也可以提高用户的交互体验。而 AndroidX 则是一个方便的支持库,可以帮助开发者更好地使用 Android 平台的新功能,并保持向后兼容性。