android - 如何自定义 ImageButton 样式?
问题描述
我正在制作数字键盘。 键盘外观
我对返回按钮的装饰有问题。如果我使用 ImageButton,那么我会从顶部获得一个缩进,如图所示:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- other buttons -->
<com.google.android.material.button.MaterialButton
android:id="@+id/btnPoint"
style="@style/KeypadButton"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="0dp"
android:padding="0dp"
android:text="."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnNumber0"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/btnNumber1" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnNumber0"
style="@style/KeypadButton"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="0dp"
android:padding="0dp"
android:text="0"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/btnBackspace"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btnPoint"
app:layout_constraintTop_toBottomOf="@+id/btnNumber2" />
<com.google.android.material.button.MaterialButton
android:id="@+id/btnBackspace"
style="@style/KeypadButton"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_margin="0dp"
android:padding="0dp"
android:scaleType="center"
android:text=""
app:iconGravity="end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/btnNumber0"
app:layout_constraintTop_toBottomOf="@+id/btnNumber3" />
</androidx.constraintlayout.widget.ConstraintLayout>
这是按钮的样式
<!-- Keyboard -->
<style name="KeypadButton" parent="Widget.MaterialComponents.TextView">
<item name="android:textSize">@dimen/font_large_30</item>
<item name="android:textStyle">bold</item>
<item name="android:textColor">@color/swatch_7</item>
<item name="backgroundTint">@color/key_number</item>
<item name="android:background">@drawable/ripple_bg</item>
<item name="android:textAlignment">center</item>
<item name="android:gravity">center</item>
<item name="elevation">0dp</item>
</style>
如果我继承了 ImageButton 样式,那么我会在按钮周围得到填充,这是无法删除的。
请告诉我如何正确设计退格按钮。
解决方案
尝试更换
<style name="KeypadButton" parent="Widget.MaterialComponents.TextView">
至
<style name="KeypadButton" parent="Widget.MaterialComponents.Button">
推荐阅读
- java - 获取 null Java Android Studio
- javascript - 在Angular10中将HTML表格数据导出到Excel文件
- perl - 如何让 Capture::Tiny 在失败时打印 stderr 和 stdout?
- javascript - Discord.JS TypeError:message.author.hasPermission 不是函数
- javascript - 使用 CSS + Javascript 在初始状态下隐藏手风琴组件
- java - Java rest ws:javax.net.ssl.SSLException 连接重置
- flutter - 颤振,使用零安全 - 测试版与稳定通道
- database - 如何提高 GCP 数据存储区查询性能?
- arrays - 将二维矩阵分配给 C++/Arduino 中的另一个变量
- javascript - 使用条件导致 React 渲染限制错误