如何将图标和文本居中 android button 宽度设置 "fill parent"
我希望有 Android Button 使用图标+文本以内部为中心。 我使用属性 drawableLeft 要安装图像,它会很好地运行 button 有宽度
, 但我需要伸展到最大宽度,所以我使用宽度
. 它将我的图标左转移动 button, 我想要这个图标,文本集中在里面 button.
我试图配置填充,但它允许您只提供固定值,因此这不是我需要的。 我需要+文本图标在中心对齐。
是否有关于我如何实现这一目标的建议?
"wrap_content"
, 但我需要伸展到最大宽度,所以我使用宽度
"fill_parent"
. 它将我的图标左转移动 button, 我想要这个图标,文本集中在里面 button.
我试图配置填充,但它允许您只提供固定值,因此这不是我需要的。 我需要+文本图标在中心对齐。
<button android:drawableleft="@drawable/start" android:heigh="wrap_content" android:id="@+id/startTelemoteButton" android:paddingleft="20dip" android:paddingright="20dip" android:text="@string/start_telemote" android:width="fill_parent"></button>
是否有关于我如何实现这一目标的建议?
没有找到相关结果
已邀请:
25 个回复
知食
赞同来自:
使用属性 Android 4.0 /等级 14 API/ 您可以使用该属性 android:drawableStart 在文本的开头上容纳绘图。 我想到的唯一向后兼容解决方案 - 这是使用
http://developer.android.com/r ... .html
要创建文本+覆盖的图像:
在我的情况下,我也需要配置属性 android:gravity Button, 所以它看起来居中:
知食
赞同来自:
我从这里找到了这个解决方案:
http://porcupineprogrammer.blo ... .html
涵秋
赞同来自:
现在你可以使用
, 这允许您设置图标的重力。
https://i.stack.imgur.com/jX67S.png
要使用材料组件,您可能需要:
添加依赖项
/使用最新版本/
使您的主题扩展了材料组件的主题
如果您无法执行此操作,请从主题中扩展 Material Bridge
莫问
赞同来自:
LinearLayout
反而
Button
. OnClickListener
, 我需要使用的是完全工作 LinearLayout.
八刀丁二
赞同来自:
八刀丁二
赞同来自:
然后打电话
在
.
我希望这将有助于某人,因为它似乎是一个非常普遍的问题。 :/
喜特乐
赞同来自:
https://gist.github.com/rajivnarayana/5224881
使用
小明明
赞同来自:
喜特乐
赞同来自:
创建 RelativeLayout "wrap_content" 用镜子 button 作为背景或你自己 button 作为布局的第一个元素。 拿 LinearLayout 并安装它 "layout_centerInParent" 和 "wrap_content". 然后安装你的 Drawable 作为 Imageview. 最后,安装 TextView 用你的文字 /locale/.
因此,主要是您拥有这种结构:
或者喜欢这个:
我知道,通过这个解决方案,有许多您需要处理的物品,但您可以很轻松地创建自己的自定义 button 与它一起,并设置文本和图纸的确切位置 :/
帅驴
赞同来自:
, 它动态地改变大小。 以下是其中可以实现的内容:
https://i.stack.imgur.com/vGIdF.png
请注意,示例中的按钮可镀块区域 3 与示例中的相同 2 /即用空间/, 什么不同的例子 4, 他们之间没有间隔 "unclickable".
代码:
诸葛浮云
赞同来自:
https://github.com/Omega-R/OmegaCenterIconButton
https://i.stack.imgur.com/RnR28.png
小姐请别说爱
赞同来自:
班级 Java IButton
:
}
布局 ibutton.xml
要使用此自定义小部件
:
您必须为用户属性提供命名空间。
xmlns:ibutton="http://schemas.android.com/apk/res / com.test.android.xxx"
其中com.test.android.xxx根应用程序包。
把它放在下面 xmlns:android="http://schemas.android.com/apk/res / android".
你需要的最后一件事, - 这些是自定义属性 attrs.xml.
在40年代
更好地定位包装用户 Button 里面 LinearLayout, 如果你想避免潜在的定位问题 RelativeLayout.
享受!
风见雨下
赞同来自:
CenterDrawableButton.java
attrs.xml
使用
诸葛浮云
赞同来自:
放 FrameLayout 在 LinearLayout 并水平设置方向。
诸葛浮云
赞同来自:
江南孤鹜
赞同来自:
卫东
赞同来自:
http://developer.android.com/r ... 28int,%20int,%20int,%20int%29
.
绘图的宽度是固定的,您可以观看它,以及计算或猜测文本宽度。
最后,您需要乘以填充屏幕密度的价值
http://developer.android.com/r ... .html
八刀丁二
赞同来自:
君笑尘
赞同来自:
https://github.com/steelkiwi/CenteredContentButton
CenteredContentButton
风见雨下
赞同来自:
}
喜特乐
赞同来自:
正确填充的计算解决了这一目标。 但是,对于各种屏幕,使用各种垫片并将其放在相应的文件夹值中的资源中。
帅驴
赞同来自:
RelativeLayout
/容器/ 和
android:layout_centerHorizontal="true"
, 我的样本:
知食
赞同来自:
使用此解决方案,如果您添加
@color/your_color
@color/your_highlight_color
在您的活动主题中,您可以在带阴影和涟漪的棒棒糖上拥有一个重要的主题,并为以前的版本 flat button 用你的颜色和照明 coor 当你点击它时。
此外,在该决定的帮助下,图片是自动化的
结果 :
首先在棒棒糖设备上
其次 : 在棒棒糖设备上
3-y。 : 棒棒糖设备按压 button
https://i.stack.imgur.com/eufDz.png
诸葛浮云
赞同来自:
使用图标
和平整 textView
左边| deltervertical.
, 并且在视图和使用的图标之间进行小区间隔
帅驴
赞同来自:
由于线性布局充当容器,并且在点击整个线性布局时具有选择器的人,因此它将完全相同。 如果您希望它同时居中,请使用相对 insteaf. 如果您希望水平居中,请更改水平的方向。
笔记,
那个ne。
忘记添加
android:clickable=" div="" true"="" 再次,它可能是一个旧的线程,但仍然可以帮助那里的人。="" 在你的主容器中="" 快乐的编码。="" 相对或线性="" 赫雷,我希望它会有所帮助="" 这样行动发生了。="">
</imageview></linearlayout>