我有这个主要布局。它应该显示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的设计编辑器中看到的样子:
但是,这是在模拟器中的显示方式:
为什么用这种方式呈现文本?缺少什么了吗?
通过阅读教程,我在按钮定义中看不到任何特别之处。
问候 海梅
答案 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>