android - 中间有drawable的圆形按钮
问题描述
我目前正在对正在开发的应用程序进行布局,但无法在 xml 中创建此按钮。
里面的箭头是一个.png图片(我也可以把它导出为矢量),背景只是一个可绘制的。我无法混合这两种资产来制作这个按钮。我目前的结果是这样的:
xml是:
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/onboardingStep2NextButton"
android:layout_width="50dp"
android:layout_height="50dp"
app:layout_constraintTop_toBottomOf="@id/onboardingStep2SubTitle"
android:src="@drawable/long_left"
android:background="@drawable/purple_round_background"
app:layout_constraintEnd_toEndOf="parent"/>
紫色圆形背景.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
<corners android:radius="50dp"/>
<solid android:color="@color/purple" />
</shape>
谢谢你的帮助
解决方案
你可以只使用一个MaterialButton
:
<com.google.android.material.button.MaterialButton
android:layout_width="50dp"
android:layout_height="50dp"
style="@style/Widget.MaterialComponents.Button.IconOnly"
app:icon="@drawable/ic_add_24px"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.MyApp.Button.Circle"
/>
这种风格:
<style name="Widget.MaterialComponents.Button.IconOnly" >
<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">12dp</item>
<item name="android:minHeight">12dp</item>
<item name="iconGravity">textStart</item>
</style>
这shapeAppearanceOverlay
:
<style name="ShapeAppearanceOverlay.MyApp.Button.Circle" parent="">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
推荐阅读
- c# - UNITY ECS 不在运行时注册新实体
- python-3.x - python在多个函数中使用多个值
- listview - 有没有办法只让 ListView 的 ItemTemplate 不可见?
- angular - Longpress event triggers tap event
- java - JPA criteria Updatequery not really updating anything
- python - Frequency count in a dictionary -- Python using comprehension
- python - Python Regex symbolize unlimited amount of characters
- excel - 变量确定单元格的值,但调用自定义函数并在之后执行
- javascript - 使用 webpack 远程导入电子库
- ios - NSManagedObject 在指定队列上使用