android - 在android中创建一个带有图标的按钮
问题描述
我正在尝试创建一个带有居中图标和文本的按钮作为示例:
我尝试使用带有 drawableTop 的 Button,但是图标和文本的居中在不同的设备屏幕上不能很好地缩放。使用约束布局作为按钮更好吗?似乎应该有更好的方法。有任何想法吗?
解决方案
您可以使用MaterialButton
.
只有图标:
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.App.Button.OutlinedButton.IconOnly"
app:icon="@drawable/..."/>
和:
<style name="Widget.App.Button.OutlinedButton.IconOnly" parent="Widget.MaterialComponents.Button.OutlinedButton">
<item name="iconPadding">0dp</item>
<item name="android:insetTop">0dp</item>
<item name="android:insetBottom">0dp</item>
<item name="android:paddingLeft">12dp</item>
<item name="android:paddingRight">12dp</item>
<item name="android:minWidth">48dp</item>
<item name="android:minHeight">48dp</item>
</style>
或图标 + 文字:
<com.google.android.material.button.MaterialButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
app:iconGravity="top"
android:text="BUTTON"
app:icon="@drawable/..."/>
推荐阅读
- kdb - q 中字符串转换的限制,TOK 中的星号
- sql - 创建表时清空表
- php - Laravel 中的测试 - 每个文件只运行一次数据库迁移,而不是每个单独的测试
- javascript - 如何让 Django 代码中的 Javascript 监听并响应前端的点击事件?
- amazon-web-services - Presigned S3 url 在过期时间后有效
- sql-server - 如何获取在 MS SQL 中执行的 UPDATE 语句
- javascript - 仅当在节点 js 中完成一个方法调用时,我如何才能返回响应
- ios - 带有滑动操作的 RxSwift TableView
- sas - 如何在 SAS 中创建嵌套行?
- ios - 如何在 Swift 包管理器中添加 Reality 文件?