Button 左边图片右边文字居中显示样式
2014-05-20 09:18
567 查看
最近在做的一个个界面,底部导航按钮需要采用Button,而Button显示内容为左边图片右边文字的样式。效果如
分别为四个按钮。查了很久的Button属性,发现Button自带的属性:drawableLeft、drawableTop、drawableBottom等这些属性都满足不了需求,用drawableLeft效果图为:
Button中间的图片和文字无法实现居中显示的效果。
通过网上查阅了些资料,发现两种方法成功的写出想要的效果。第一种:采用SpannableString和ImageSpan结合使用达到该效果,但是图片的大小不能超过文字的高度。
效果:
效果图为什么是这样子?相信有朋友会问。因为我是需要四个Button并列放置,我是从xml预览界面截图的。所以不要怀疑,,,需要的朋友可以参考参考。同时有什么好的建议可以交流学习学习。。。。。
分别为四个按钮。查了很久的Button属性,发现Button自带的属性:drawableLeft、drawableTop、drawableBottom等这些属性都满足不了需求,用drawableLeft效果图为:
Button中间的图片和文字无法实现居中显示的效果。
通过网上查阅了些资料,发现两种方法成功的写出想要的效果。第一种:采用SpannableString和ImageSpan结合使用达到该效果,但是图片的大小不能超过文字的高度。
bt1 = (Button)findViewById(R.id.bt1); SpannableString spanText = new SpannableString("1标记"); Drawable d = getResources().getDrawable(R.drawable.main_icon_nearby); int b = (int)bt1.getTextSize(); d.setBounds(0,0,b,b); ImageSpan imageSpan = new ImageSpan(d,ImageSpan.ALIGN_BASELINE); spanText.setSpan(imageSpan, 0,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); bt1.setText(spanText);效果如就不贴出来了,需要的朋友直接复制代码到编译器上运行下就可以看到了。下面介绍第二种方法:即采用RelativeLayout相对布局和LinearLayout线性布局的嵌套格式,这样XML文件中代码的复杂度冗余度比较大,但是相对比较容易理解。废话不多说,说多了没用直接上代码:
<RelativeLayout android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"> <Button android:id="@+id/bt2" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/btbus_seletor"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:gravity="center"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/main_icon_route"> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="false" android:text="公交" android:textSize="15sp" android:textColor="#4F4F4F"/> </LinearLayout> </RelativeLayout>里面的Button背景图片是我自己写的一个seletor文件,这里就不贴出来了,根据自己需要设置嘛!
效果:
效果图为什么是这样子?相信有朋友会问。因为我是需要四个Button并列放置,我是从xml预览界面截图的。所以不要怀疑,,,需要的朋友可以参考参考。同时有什么好的建议可以交流学习学习。。。。。
相关文章推荐
- button 左边图片右边文字样式
- 如何使带背景图片的Button按钮中的文字居中偏上显示
- Docx4j 在页眉同时 添加logo图片和文字,logo图片显示在左边,文字显示在右边
- 如何使带背景图片的Button按钮中的文字居中偏上显示
- 重写button实现文字图片居中显示
- iOS自定义Button如何在按钮中把文字放左边,图片放右边
- 实现一个imagebutton, 左边为图片,右边为文字
- android(安卓) 左边图片右边文字的button (按钮)
- android(安卓) 左边图片右边文字的button (按钮)
- css样式实现左边的固定宽度和高度的图片或者div跟随右边高度不固定的文字或者div垂直居中(文字高度超过图片,图片跟随文字居中,反之文字跟随图片居中非table实现)
- UIButton左边图片右边文字的做法
- Chrome 控制台新玩法-console显示图片以及为文字加样式
- CSS样式中,background-image 背景图片居中显示并且在不同屏幕分辨率下始终居中
- Chrome 控制台新玩法-console显示图片以及为文字加样式
- Chrome 控制台新玩法-console显示图片以及为文字加样式
- android ViewPager在拖拽到左边和右边的时候,禁止显示黄色或者蓝色的渐变图片的解决方法
- Chrome 控制台新玩法-console显示图片以及为文字加样式
- 自定义button-iOS设置button图片文字上下居中垂直对齐
- 图片文字绝对居中,并排显示
- android中Textview 和图片同时显示时,文字省略号显示,图片自动靠到右边