1

在我的应用程序中使用选项卡主机活动并设置带有图片的选项卡。当应用程序在模拟器上运行时,图像显示没有任何问题。但是当我在移动设备(Micromax 移动设备)上运行应用程序时,它没有显示。

请告诉我是什么问题以及如何解决它。

标签主机编码:

        Intent intent = new Intent(this, WeekActivity.class);

    tabHost.addTab(tabHost
            .newTabSpec("Week")
            .setIndicator("Weekly", res.getDrawable(R.drawable.ic_tab_main))
            .setContent(intent));

    Intent intent2 = new Intent(this,ListMonthActivity.class);
    tabHost.addTab(tabHost
            .newTabSpec("Month")
            .setIndicator("Monthly", res.getDrawable(R.drawable.ic_tab_setup))
            .setContent(intent2));
    tabHost.setCurrentTab(0);

    Intent intent3 = new Intent(this, ListYearActivity.class);
    TabHost.TabSpec spec=tabHost.newTabSpec("Year").setIndicator("Yearly",getResources().getDrawable(R.drawable.ic_launcher)).setContent(intent3);
    tabHost.addTab(spec);

    /*tabHost.addTab(tabHost
            .newTabSpec("Year")
            .setIndicator("Yearly", res.getDrawable(R.drawable.ic_tab_setup))
            .setContent(intent3));
    tabHost.setCurrentTab(0);*/

    // Set tabs Colors
    tabHost.setBackgroundColor(Color.BLACK);
    tabHost.getTabWidget().setBackgroundColor(Color.BLACK);
   }

选择器选项卡宿主 Xml 文件

  <?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/calendaricon"
      android:state_selected="true"/>
  <!-- When not selected, use white-->
  <item android:drawable="@drawable/calendaricon2" />
 </selector>

Tabhost 布局 XML 文件:

   <?xml version="1.0" encoding="utf-8"?>
   <TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:padding="0dp"
    >
    <TabWidget android:id="@android:id/tabs"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        />
    <FrameLayout android:id="@android:id/tabcontent"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        />

</LinearLayout>
   </TabHost>
4

3 回答 3

2

当我给出下面给定的代码时,它成功了。

mTabHost.addTab(mTabHost.newTabSpec("Bar").setIndicator("",getResources().getDrawable(R.drawable.ic_barchart)), BarChart.class, null);

我所做的更改是,将第一个参数保留setIndicator为 EMPTY 字符串。(当我把它作为"BarChart"时,它不起作用。)

于 2013-07-18T11:31:27.007 回答
2

您必须将图像保存在每个文件夹中,例如具有相同名称的 mdpi、hdpi、ldpi,或者您只需将图片保存在 mdpi 文件夹中,低分辨率或高密度移动设备会自动从 mdpi 文件夹中选择图像。

于 2012-07-06T06:33:43.830 回答
1

将选项卡主机中的图像设置为:

TabHost.TabSpec spec=tabHost.newTabSpec("hello").setIndicator("hello",getResources().getDrawable(R.drawable.ic_launcher)).setContent(intent);
tabHost.addTab(spec);

我刚刚在设备中尝试过这个,它工作正常。

于 2012-07-06T06:50:17.907 回答