public class MainActivity extends TabActivity implements OnClickListener {
public static String TAB_TAG_HOME = "home";
public static String TAB_TAG_CHANNEL = "channel";
public static String TAB_TAG_ACCOUNT = "account";
public static String TAB_TAG_SEARCH = "search";
public static String TAB_TAB_MORE = "more";
public static TabHost mTabHost;
static final int COLOR1 = Color.parseColor("#787878");
static final int COLOR2 = Color.parseColor("#ffffff");
ImageView mBut1, mBut2, mBut3, mBut4, mBut5;
TextView mCateText1, mCateText2, mCateText3, mCateText4, mCateText5;
Intent mHomeItent, mChannelIntent, mSearchIntent, mAccountIntent,
mMoreIntent;
int mCurTabId = R.id.channel1;
// Animation
private Animation left_in, left_out;
private Animation right_in, right_out;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
prepareAnim();
prepareIntent();
setupIntent();
prepareView();
}
private void prepareAnim() {
left_in = AnimationUtils.loadAnimation(this, R.anim.left_in);
left_out = AnimationUtils.loadAnimation(this, R.anim.left_out);
right_in = AnimationUtils.loadAnimation(this, R.anim.right_in);
right_out = AnimationUtils.loadAnimation(this, R.anim.right_out);
}
private void prepareView() {
mBut1 = (ImageView) findViewById(R.id.imageView1);
mBut2 = (ImageView) findViewById(R.id.imageView2);
mBut3 = (ImageView) findViewById(R.id.imageView3);
mBut4 = (ImageView) findViewById(R.id.imageView4);
mBut5 = (ImageView) findViewById(R.id.imageView5);
findViewById(R.id.channel1).setOnClickListener(this);
findViewById(R.id.channel2).setOnClickListener(this);
findViewById(R.id.channel3).setOnClickListener(this);
findViewById(R.id.channel4).setOnClickListener(this);
findViewById(R.id.channel5).setOnClickListener(this);
mCateText1 = (TextView) findViewById(R.id.textView1);
mCateText2 = (TextView) findViewById(R.id.textView2);
mCateText3 = (TextView) findViewById(R.id.textView3);
mCateText4 = (TextView) findViewById(R.id.textView4);
mCateText5 = (TextView) findViewById(R.id.textView5);
}
private void prepareIntent() {
mHomeItent = new Intent(this, HomeActivity.class);
mChannelIntent = new Intent(this, ChannelActivity.class);
mAccountIntent = new Intent(this, AccountActivity.class);
mSearchIntent = new Intent(this, SearchActivity.class);
mMoreIntent = new Intent(this, MoreActivity.class);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
mBut1.performClick();
return true;
}
return super.onKeyDown(keyCode, event);
}
private void setupIntent() {
mTabHost = getTabHost();
mTabHost.addTab(buildTabSpec(TAB_TAG_HOME, R.string.category_home,
R.drawable.icon_1_n, mHomeItent));
mTabHost.addTab(buildTabSpec(TAB_TAG_CHANNEL,
R.string.category_channel, R.drawable.icon_2_n, mChannelIntent));
mTabHost.addTab(buildTabSpec(TAB_TAG_SEARCH, R.string.category_search,
R.drawable.icon_3_n, mSearchIntent));
mTabHost.addTab(buildTabSpec(TAB_TAG_ACCOUNT,
R.string.category_account, R.drawable.icon_4_n, mAccountIntent));
mTabHost.addTab(buildTabSpec(TAB_TAB_MORE, R.string.category_more,
R.drawable.icon_5_n, mMoreIntent));
}
private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,
final Intent content) {
return mTabHost
.newTabSpec(tag)
.setIndicator(getString(resLabel),
getResources().getDrawable(resIcon))
.setContent(content);
}
public static void setCurrentTabByTag(String tab) {
mTabHost.setCurrentTabByTag(tab);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mCurTabId == v.getId()) {
return;
}
mBut1.setImageResource(R.drawable.icon_1_n);
mBut2.setImageResource(R.drawable.icon_2_n);
mBut3.setImageResource(R.drawable.icon_3_n);
mBut4.setImageResource(R.drawable.icon_4_n);
mBut5.setImageResource(R.drawable.icon_5_n);
mCateText1.setTextColor(COLOR1);
mCateText2.setTextColor(COLOR1);
mCateText3.setTextColor(COLOR1);
mCateText4.setTextColor(COLOR1);
mCateText5.setTextColor(COLOR1);
int checkedId = v.getId();
final boolean o;
if (mCurTabId < checkedId)
o = true;
else
o = false;
if (o)
mTabHost.getCurrentView().startAnimation(left_out);
else
mTabHost.getCurrentView().startAnimation(right_out);
switch (checkedId) {
case R.id.channel1:
mTabHost.setCurrentTabByTag(TAB_TAG_HOME);
mBut1.setImageResource(R.drawable.icon_1_c);
mCateText1.setTextColor(COLOR2);
break;
case R.id.channel2:
mTabHost.setCurrentTabByTag(TAB_TAG_CHANNEL);
mBut2.setImageResource(R.drawable.icon_2_c);
mCateText2.setTextColor(COLOR2);
break;
case R.id.channel3:
mTabHost.setCurrentTabByTag(TAB_TAG_SEARCH);
mBut3.setImageResource(R.drawable.icon_3_c);
mCateText3.setTextColor(COLOR2);
break;
case R.id.channel4:
mTabHost.setCurrentTabByTag(TAB_TAG_ACCOUNT);
mBut4.setImageResource(R.drawable.icon_4_c);
mCateText4.setTextColor(COLOR2);
break;
case R.id.channel5:
mTabHost.setCurrentTabByTag(TAB_TAB_MORE);
mBut5.setImageResource(R.drawable.icon_5_c);
mCateText5.setTextColor(COLOR2);
break;
default:
break;
}
if (o)
mTabHost.getCurrentView().startAnimation(left_in);
else
mTabHost.getCurrentView().startAnimation(right_in);
mCurTabId = checkedId;
}
}