在Android模拟器中,按钮看起来很难看

时间:2019-06-30 03:34:37

标签: android android-layout

我有这个主要布局。它应该显示3个按钮,但我只向您显示1个按钮定义,以免在问题中放置大部分代码。其他按钮具有相同的定义。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingTop="70dp"
    android:paddingBottom="70dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.5"
        android:gravity="center"
        android:orientation="horizontal"
        android:padding="50dp">

        <Button
            android:id="@+id/btnRfid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/main_button_background"
            android:padding="20dp"
            android:text="@string/button_rfid"
            android:textSize="36sp"
            android:drawableLeft="@drawable/button_rfid"/>
    </LinearLayout>
</LinearLayout>

这是main_button_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:startColor="#FFFFFF"
        android:endColor="#949597"
        android:angle="270" />
    <corners android:radius="20dp" />
    <stroke android:width="5px" android:color="#000000" />
</shape>

这就是我在Android Studio的设计编辑器中看到的样子:

design editor

但是,这是在模拟器中的显示方式:

enter image description here

为什么用这种方式呈现文本?缺少什么了吗?

通过阅读教程,我在按钮定义中看不到任何特别之处。

问候 海梅

1 个答案:

答案 0 :(得分:1)

1)将项目迁移到androidx
2)在您的build.gradle中包含依赖项:

  

实现'com.google.android.material:material:1.0.0'

3)在布局中使用:

<com.google.android.material.button.MaterialButton
  android:id="@+id/material_icon_button"
  style="@style/Widget.MaterialComponents.Button.Icon"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/icon_button_label_enabled"
  app:icon="@drawable/icon_24px"/>

4)不要忘记将您的应用级主题更改为“材料组件”主题。

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>

</style>