关于android中怎么设置TabWidget中图片及字体的大小的问题

由于在所做的项目中的图片资源都是从网上抠的,所以造成了,在TabWidget中图片过大,从而覆盖掉了里面的文字,最开始的效果如图

 
 
在网上众多的搜索结果中,网上大部分将的都是有关怎么更改字体的大小及颜色的问题,代码如下
 设置tabHost 中的tabs的字体颜色、大小等;
        TabWidget tabWidget=this.getTabWidget();
        for (int i = 0; i < tabWidget.getChildCount(); i++) {
            TextView tv=(TextView)tabWidget.getChildAt(i).findViewById(android.R.id.title);
            tv.setGravity(BIND_AUTO_CREATE);
            tv.setPadding(10, 10,10, 10);
            tv.setTextSize(16);//设置字体的大小;
            tv.setTextColor(Color.WHITE);//设置字体的颜色;
                //获取tabs图片;
            ImageView iv=(ImageView)tabWidget.getChildAt(i).findViewById(android.R.id.icon);
        }
 
根据上面的例子我们估计会采用两种方式来解决的问题
1、
for (int i = 0; i < tabWidget.getChildCount(); i++) {
         
              //获取tabs图片;
          ImageView iv=(ImageView)tabWidget.getChildAt(i).findViewById(android.R.id.icon);
          iv.setMaxHeight(30);
          iv.setMaxWidth(30);
      }
这样我们发现还是没有一点效果
2、
for (int i = 0; i < tabWidget.getChildCount(); i++) {
         
              //获取tabs图片;
          ImageView iv=(ImageView)tabWidget.getChildAt(i).findViewById(android.R.id.icon);
          iv.setLayoutParams(new LayoutParams(width, height));
      }
但这种情况的话,程序会出错,这是为什么呢,因为在new LayoutParams(width, height)的时候一定要用父控件的LayoutParams,而我们在导包的时候并没有发现有适合的
在组织导入的时候,所有的结果如图
关于android中怎么设置TabWidget中图片及字体的大小的问题_第1张图片
发现无论到那个都会出错
,3、
所以我们必须寻求另外一种方法
 for(int i=0;i < tabs.getChildCount();i++)
        {
         TextView textView = (TextView)tabs.getChildAt(i).findViewById(android.R.id.title);
         textView.setTextSize(14);
         textView.setPadding(0, 3, 0, 0);
         ImageView image = (ImageView)tabs.getChildAt(i).findViewById(android.R.id.icon);
       
         image.getLayoutParams().height = 30;//通过给它的属性赋值的方法可以解决问题
         image.getLayoutParams().width = 30;
        }
结果如图所示
完成最初设定的目标

你可能感兴趣的:(关于android中怎么设置TabWidget中图片及字体的大小的问题)