我在android中创建了一个只显示图像的标签(不包含任何文本),我希望图像显示在标签的中心。有多个标签,每个标签都包含图像,但问题是图像不会显示在每个标签的中心。
这是我的xml
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@android:id/tabs"
/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#000000" >
</TabWidget>
</RelativeLayout>
</TabHost>
在代码中设置图片:
newsTab.setIndicator("",getResources().getDrawable(R.drawable.news)).setContent(
new Intent(RestauActivity.this, NewsActivity.class));
答案 0 :(得分:4)
1) - 创建一个名为report_tabs.xml或您喜欢的任何名称的布局文件。
在report_tabs中使用此代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_tabsLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/btn_selector"
android:gravity="center"
android:orientation="vertical"
>
<ImageView
android:id="@+id/img_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
/>
</LinearLayout>
2) - 并在您的活动中使用以下代码。
Intent intent;
tabhost = getTabHost();
TabHost.TabSpec tabspec;
intent = new Intent().setClass(getApplicationContext(),xxxxx.class);
tabspec = tabhost.newTabSpec("First");
view = LayoutInflater.from(this).inflate(R.layout.report_tabs,
tabhost.getTabWidget(), false);
imgtabF = (ImageView) view.findViewById(R.id.img_icon);
imgtabF.setBackgroundResource(R.drawable.tab_icon_selector);
tabspec.setIndicator(view);
tabspec.setContent(intent);
tabhost.addTab(tabspec);
3) - 在drawable中创建一个名为tab_icon_selector的文件,用于更改选项卡上的图标,如下所示: -
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item android:state_focused="false" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/medical_icon_unselect"
/>
<item android:state_focused="false" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/medical_icon_sel" />
<!-- Focused states -->
<item android:state_focused="true" android:state_selected="false"
android:state_pressed="false" android:drawable="@drawable/medical_icon_sel" />
<item android:state_focused="true" android:state_selected="true"
android:state_pressed="false" android:drawable="@drawable/medical_icon_sel" />
<!-- Pressed -->
<item android:state_pressed="true" android:drawable="@android:color/transparent"/>
</selector>
现在,您可以创建自定义标签栏,图像图标将位于标签的中心。