我想创建一个半径为56dp的圆形按钮。它应该有一个24dp中间的图标和一个可绘制的矢量,所以我应该能够指定可绘制的色调
我创建了一个按钮背景
shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval"
android:layout_width="56dp" // is this same as 56 dp radius ??
android:layout_height="56dp"
>
<solid android:color="?color1"/>
</shape>
尝试按下面的按钮
<Button
android:id="@+id/xyz"
android:layout_width="56dp"
android:layout_height="56dp"
android:background="@drawable/button_background"
android:gravity="center"
android:drawableTop="@drawable/my_drawable"
android:padding="16dp"
android:drawableTint="?color2"
所以图标在顶部,我不知道如何将它保持在中间位置。 如果我使用android:src它在中间,但我不能给色调。什么是正确的方法
答案 0 :(得分:0)
使用AppCompatImageView解决您的问题
<android.support.v7.widget.AppCompatImageView
app:srcCompat="@drawable/border"
app:tint="@color/colorAccent"
android:padding="16dp"
android:layout_width="56dp"
android:layout_height="56dp"/>
答案 1 :(得分:0)
android:layout_width =“56dp”//与56 dp radius ??
相同
您无需为drawable指定高度和宽度,因为它会自动调整使用位置。
所以图标在顶部,我不知道如何将它保持在中间位置。
android:drawableTop
将始终将您的图片置于顶部。
我无法给出色调
您可以在ImageView中使用色调,如下所示。
button_background.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="oval">
<solid android:color="@color/colorPrimary" />
</shape>
并使用ImageView
<ImageView
android:layout_width="56dp"
android:layout_height="56dp"
android:background="@drawable/button_background"
android:padding="16dp"
android:src="@mipmap/ic_launcher"
android:tint="@color/colorBlack" />
修改强>
android:foreground="?android:attr/selectableItemBackgroundBorderless"
。