1

我开发了一个像下面这样的应用程序,在mainActivity中,当我尝试向TAB1添加图像时,图片无法填满选项卡,它有一个边框丢失。

活动图片

黄色部分是 TAB1,我需要用 TAB1 填充黄色。任何帮助将不胜感激:),谢谢

编辑:

我更新了我的密钥代码

public class MainActivity extends TabActivity implements OnTabChangeListener{

    private TabSpec ts1,ts2,ts3;//declare three page
    private TabHost tableHost;

    @override
    public void onCreate(Bundle savedInstanceState){
    super.onCreat(savedInstanceState);
    tableHost=this.getTabHost();
    LayoutInflater.from(this).inflate(R.layou.activity_main,tableHost.getTabContentView());
    ts1=tableHost.newTabSpec("Tabone");
    ts1.setIndicator("TAB1",getResources().getDrawable(R.drawable.read2));
    ts1.setContent(R.id.btn);
    ts2=tableHost.newTabSpec("Tabtwo");
    ts2.setIndicator("TAB2");
    ts2.setContent(R.id.et);
    ts3=tableHost.newTabSpec("Tabthree");
    ts3.setIndicator("TAB3");
    ts3.setContent(R.id.mylayout);
    tableHost.addTab(ts1);
    tableHost.addTab(ts2);
    tableHost.addTab(ts3);
    tableHost.setOntabChangedListener(this);
}
}
4

3 回答 3

0

尝试使用Android Asset Studio创建选项卡图标。您将获得“本机选项卡图标”外观所需的所有资源。

于 2012-11-20T08:25:02.533 回答
0

尝试这个,

In this coding you should use two images that one is actual image and another one  that's you added yellow color background with your image.

tab1_mainxml : //这个xml文件应该存储到drawable文件夹中

  <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- When selected, use grey -->
    <item android:drawable="@drawable/tab1icon"

      android:state_selected="true"/>
    <!-- When not selected, use white-->
    <item android:drawable="@drawable/tab1icon2" />
    </selector>

标签主机活动:

        tabHost.addTab(tabHost
            .newTabSpec("Tab1")

            .setIndicator("Tab1", res.getDrawable(R.drawable.tab1_mainxml))
            .setContent(intent));
于 2012-11-20T07:46:15.763 回答
0

您是否在模拟器或真实设备上尝试过您的应用程序?如果您已将“match_parent”设置为您的布局,它应该可以工作。但是我的三星 Galaxy S3 也遇到了类似的问题,这可能是硬件错误,而不是您的故障。

编辑

好的,所以如果您只使用没有 xml 定义的 Java-Code,也许您应该为 tabhost 设置布局参数。我真的不知道,只是一个假设。

    tableHost = new TabHost(this);
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
            LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
    tableHost.setLayoutParams(params);

但是有很多 LayoutParams,不知道 LinearLayout.LayoutParams 是否适合您。如果它不起作用,您必须尝试其他一些 LayoutParams。

于 2012-11-20T07:47:15.430 回答