[英]A button with an image/text centered in background
我已经看到了许多可能的答案,但是没有一个对我有用。 我的目标是要有一个带有图像,一些文本和背景的圆形按钮。 图片和文字应在背景中居中。
我将以下内容用作背景:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:dither="true"
android:shape="rectangle">
<corners android:radius="120sp" />
<solid android:color="#FF5F00" />
<size
android:width="120sp"
android:height="36sp" />
</shape>
该图像的以下内容:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24sp"
android:height="24sp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M5,12L19,12"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#FFFFFF"
android:strokeLineCap="round"/>
<path
android:pathData="M12,5L12,19"
android:strokeLineJoin="round"
android:strokeWidth="2"
android:fillColor="#00000000"
android:strokeColor="#FFFFFF"
android:strokeLineCap="round"/>
</vector>
最后是按钮:
<Button android:layout_columnSpan="6"
android:layout_gravity="center" android:drawableStart="@drawable/ic_plus_24px"
android:text="Evaluer"
android:id="@+id/doEvalQOL" android:background="@drawable/roundedyakabutton" android:textColor="#FFFFFF"
android:gravity="center"
android:textSize="12sp"
fontPath="fonts/Ubuntu-Medium.ttf" />
删除背景后,图像和文本即按我希望的背景放置:
我在这里想念什么? 提前致谢。
您可以使用drawablePadding,paddingLeft和paddingRight在按钮中心对齐文本及其图标。 我使用了下面的代码,并将结果作为屏幕快照附加。 尝试一次,希望对您有帮助。
<Button
android:id="@+id/doEvalQOL"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/roundedyakabutton"
android:drawableLeft="@drawable/ic_plus_24px"
android:text="Evaluer"
android:drawablePadding="2dip"
android:gravity="center"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:textColor="#FFFFFF"
android:textSize="12sp"
/>
问题
您不能在Button / TextView中设置drawableLeft
gravity
。 在这里,将重力设置为“按钮”,使文本居中,但图像保持在左侧。
解
android:drawablePadding="-20sp"
用于drawableLeft
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.