Tabhost选项卡上图片和文字不能同时显示的解决方案

尽管当前谷歌已经不推荐使用tabhost了,但是作为初学者,掌握这个经典的控件还是非常有必要的,在上手这个控件以后我们会发现一个问题,添加选项卡时同时添加了文字和图片但是Tabhost却只显示出了文字,针对这个问题我们可以对tabhost的选项卡即tabSpec自定义来进行解决,布局文件比较简单就不多说了,直接看MainActivity.java中的实现吧。

自定义方法如下:

          public View composeLayout(String s, int i) {
		LinearLayout layout = new LinearLayout(this);
		layout.setOrientation(LinearLayout.VERTICAL);
		ImageView iv = new ImageView(this);
		iv.setImageResource(i);
		LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
		LinearLayout.LayoutParams.WRAP_CONTENT,
		LinearLayout.LayoutParams.WRAP_CONTENT);
		lp.setMargins(60,10, 0, 0);
		layout.addView(iv, lp);
		TextView tv = new TextView(this);
		tv.setGravity(Gravity.LEFT);
		tv.setSingleLine(true);
		tv.setText(s);
		tv.setTextColor(Color.WHITE);
		tv.setTextSize(14);
		tv.setPadding(40, 5, 0, 0);;
		layout.addView(tv, new LinearLayout.LayoutParams(
		LinearLayout.LayoutParams.WRAP_CONTENT,
		LinearLayout.LayoutParams.WRAP_CONTENT));
		return layout;
	}

自定义的方法ok以后就可以在onCreate()上进行添加了:

                TabHost tab = (TabHost) findViewById(R.id.tabhost);
		tab.setup(this.getLocalActivityManager());

		TabHost.TabSpec specOne = tab.newTabSpec("选项卡一");
		specOne.setIndicator(composeLayout("精品推荐", R.drawable.pic1));
		specOne.setContent(R.id.tab1);
		tab.addTab(specOne);  

		TabHost.TabSpec specTwo = tab.newTabSpec("选项卡二");
		specTwo.setIndicator(composeLayout("专题分类", R.drawable.pic2));
		specTwo.setContent(R.id.tab2);
		tab.addTab(specTwo);

		TabHost.TabSpec specThree = tab.newTabSpec("选项卡三");
		specThree.setIndicator(composeLayout("  排行榜", R.drawable.pic3));
		specThree.setContent(R.id.tab3);
		tab.addTab(specThree);

		TabHost.TabSpec specFour = tab.newTabSpec("选项卡四");
		specFour.setIndicator(composeLayout("下载管理", R.drawable.pic4));
		specFour.setContent(R.id.tab4);
		tab.addTab(specFour);

这里添加了四个,可以根据自己的需求进行调整。

最终实现的效果如下,注意底部:

此处为实现底部点选的效果我将tabhost的选项卡设置到了底部,下一篇文章,将简述一下这项设置的具体操作。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-12 18:20:43

Tabhost选项卡上图片和文字不能同时显示的解决方案的相关文章

按钮的上图片下文字排版

self.rechargeButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//使图片和文字水平居中显示 [self.rechargeButton setTitleEdgeInsets:UIEdgeInsetsMake(self.rechargeButton.imageView.frame.size.height+10 ,-self.rechargeButton.imageView.fram

在Button上、下、左、右位置添加图片和文字

转载请注明出处:http://blog.csdn.net/droyon/article/details/37564419 很多人有如标题所述的需求,而且大多数人采用了自定义组件解决了需求,其实还可以有更"懒"的方法. 1.先附效果图: 2.方案. 首先,Activity.java public class MainActivityTest extends Activity{ @Override protected void onCreate(Bundle savedInstanceSt

UIButton上同时显示图片和文字的方法

参考:http://blog.csdn.net/qijianli/article/details/8152726 不过有个问题,就是我使用时不能改变文字的颜色,后来修改了一下方法,如下: 定义一个UIButton+Manager文件,在.h #import <UIKit/UIKit.h> @interface UIButton (UIButtonImageWithLable) - (void) setImage:(UIImage *)image withTitle:(NSString *)ti

图片和文字在同一水平线上

在写页面的时候,我们经常会遇到,图片和文字的位置问题,比如图片和文字在同一水平线上,这个时候如果我们用2个div浮动来实现,或者一个div,图+文字的方式实现,图片往往达不到标准的效果,此时需要调整图片的位置,来使得图片和文字在同一水平线上. <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title

鼠标移上图片滑出文字提示

本效果演示了一个响应鼠标的提示功能,鼠标移上图片后会滑出一个带背景的提示框,用CSS去控制它的大小和样式,用JS去控制它的滑出和速度,图文混排的时候这个能用得上. 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="

css控制图片与文字对齐

文字旁边搭配图片时,发现图片比文字靠上,原来默认的情况是图片顶对齐而文字底对齐,通过设置css属性可以使得图片与文字对齐. 设置各对象的vertical-align属性,属性说明:baseline-将支持valign特性的对象的内容与基线对齐sub-垂直对齐文本的下标super-垂直对齐文本的上标top-将支持valign特性的对象的内容与对象顶端对齐text-top-将支持valign特性的对象的文本与对象顶端对齐middle-将支持valign特性的对象的内容与对象中部对齐bottom-将支

XenApp/XenDesktop 7.11中对于视频、图片、文字的优化的说明

在桌面虚拟化这个技术门类中,市面上一共主流有以下几种协议: Citrix的ICA/HDX协议 Teradici公司的PCoIP(VMware Horzion中主要使用的协议之一) 微软公司的RDP RedHat公司的spice 以及近两年我们能接触到的 VMware公司的Blast(VMware在Horizion 6版本以后开始提供的协议,有逐步替代PCoIP的趋势) 华为的HDP 但是无论怎么墙头变换大王旗,Citrix的ICA/HDX协议可以说多年来一直都是行业最为优秀的企业级远程交付协议.

ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案

原文:ArcGIS API for Silverlight之配准JPG图片地图文字倾斜解决方案 根据实际JPG图片进行配准后,发布的地图,利用ArcGIS API for Silverlight在网页上显示的时候,原先的文字总有倾斜的现象,如何解决? 图一.配准后有文字倾斜现象的地图 解决方案如下: <esri:Map x:Name="myMap" IsLogoVisible="False" ZoomDuration="0:00:01" E

php给图片加文字

在图片上加文字是论坛,博客,新闻网站上最喜欢用的功能,防止盗图.这里看看代码是如何实现的. 首先还是upload_image.php这个文件,注意这里的caption文本框中输入的内容最终会写到图片上面 <?php //修改图片效果 $db = mysql_connect('localhost','root','Ctrip07185419') or die('can not connect to database'); mysql_select_db('moviesite',$db) or di