2013-07-03 104 views
1

我正在研究android應用程序有tabs.I已完成實施,但我面臨一個問題。圖像不適合選項卡。Android選項卡圖像不適合選項卡

這裏是我的Java代碼:

import android.app.TabActivity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TabHost; 
import android.widget.TabHost.TabSpec; 
import android.widget.TextView; 

import com.tv.allies.FriendsScreen; 
import com.tv.servercommunication.IServerResponse; 
import com.tv.setting.SettingActivity; 
import com.tv.socialgoal.R; 
import com.tv.socialgoal.profile.ProfileScreen; 
import com.tv.task.TaskListActivity; 

@SuppressWarnings("deprecation") 
public class TabViewActivity extends TabActivity implements IServerResponse{ 
    private static final String INBOX_SPEC = "Inbox"; 

    private static final String OUTBOX_SPEC = "Outbox"; 
    private static final String PROFILE_SPEC = "Profile"; 
    private static final String SETTING_SPEC = "Setting"; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     TabHost tabHost = getTabHost(); 
     tabHost.addTab(tabHost 
       .newTabSpec("one") 
       .setIndicator("", 
         getResources().getDrawable(R.drawable.missions_btn_up)) 
         .setContent(
           new Intent(this, TaskListActivity.class) 
           .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); 
     TabSpec outboxSpec = tabHost.newTabSpec(OUTBOX_SPEC); 

     tabHost.addTab(tabHost 
       .newTabSpec("two") 
       .setIndicator("", 
         getResources().getDrawable(R.drawable.allies_btn_up)) 
         .setContent(new Intent(this, FriendsScreen.class))); 

     TabSpec setting = tabHost.newTabSpec(OUTBOX_SPEC); 
     outboxSpec.setIndicator("",getResources().getDrawable(R.drawable.profile_btn_up)); 
     Intent outboxIntent = new Intent(this, ProfileScreen.class); 
     outboxSpec.setContent(outboxIntent); 

     // Profile Tab 
     TabSpec profileSpec = tabHost.newTabSpec(PROFILE_SPEC); 
     profileSpec.setIndicator("",getResources().getDrawable(R.drawable.settings_btn_up)); 
     Intent profileIntent = new Intent(this, SettingActivity.class); 
     profileSpec.setContent(profileIntent); 

     tabHost.addTab(outboxSpec); // Adding Outbox tab 
     tabHost.addTab(profileSpec); 
    } 

    @Override 
    public void serverResponse(String response, int processid) { 
     // TODO Auto-generated method stub 

    } 

} 

這裏是標籤的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:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="#3399FF"/> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
    </LinearLayout> 

</TabHost> 

這裏是屏幕短:

enter image description here

所有標籤圖像如何適合每個標籤?

回答

0

根據分辨率在標籤中使用正確的圖像

使用以下鏈接生成標籤圖像。 [check this]

+0

嗨我正在使用正確的圖像標籤。 –

+0

@ricintech檢查此http://www.androidhive.info/2011/08/android-tab-layout-tutorial/ – sachin10

2

回答你的問題是一件棘手的事情。對於設置標籤的背景和圖像,根據您的要求,你必須使用你必須對你的標籤

1)對於標籤的背景設置圖像的自定義XML: -

一)創建一個XML您可繪製文件夾,複製粘貼以下

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_selected="true" android:drawable="@drawable/tab_bg_green" /> 
    <item android:drawable="@drawable/tab_bg_blue" /> 
</selector> 

這個XML將工作一樣,我們使用的按鈕XML。在按下狀態和正常狀態下。 名稱這個XML作爲tab_bg.xml

b)中在Java文件使用在代碼下面的方法和其次通過您tabhost例如在該方法中

public void setTabColor(TabHost tabhost) { 
     for(int i=0;i<tabhost.getTabWidget().getChildCount();i++) 
     { 
      tabhost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg); //unselected 
     } 
    } 

2)的標籤圖標以下爲tabhost使用: - 使用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/settings_btn_down" 
      android:state_selected="true" /> 
    <!-- When not selected, use white--> 
    <item android:drawable="@drawable/settings_btn_up" /> 
</selector> 

命名此XML作爲settings_tab_xml.xml。並在您的代碼

tabHost.addTab(tabHost 
       .newTabSpec("two") 
       .setIndicator("", 
         getResources().getDrawable(R.xml.settings_tab_xml)) 
         .setContent(new Intent(this, FriendsScreen.class))); 

讓我知道,如果這可以幫助你。

相關問題