1

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));
4

1 に答える 1

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)-タブクリックのアイコンを変更するためのドローアブルに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>

これで、カスタムタブバーを作成でき、画像アイコンがタブの中央に表示されます。

于 2012-09-19T11:08:40.727 に答える