首页 > 代码库 > Android源码之高仿爱奇艺

Android源码之高仿爱奇艺

Android源码之高仿爱奇艺
本源码是一套UI界面,高仿的爱奇艺。没有实现具体功能。本项目默认编码 UTF-8,需要的朋友可以拿去参考一下。
源码下载地址: http://url.cn/NLO3O4  










源码片段:

  1. public class MainActivity extends TabActivity implements OnClickListener {
  2.     public static String TAB_TAG_HOME = "home";
  3.     public static String TAB_TAG_CHANNEL = "channel";
  4.     public static String TAB_TAG_ACCOUNT = "account";
  5.     public static String TAB_TAG_SEARCH = "search";
  6.     public static String TAB_TAB_MORE = "more";
  7.     public static TabHost mTabHost;
  8.     static final int COLOR1 = Color.parseColor("#787878");
  9.     static final int COLOR2 = Color.parseColor("#ffffff");
  10.     ImageView mBut1, mBut2, mBut3, mBut4, mBut5;
  11.     TextView mCateText1, mCateText2, mCateText3, mCateText4, mCateText5;

  12.     Intent mHomeItent, mChannelIntent, mSearchIntent, mAccountIntent,
  13.             mMoreIntent;

  14.     int mCurTabId = R.id.channel1;

  15.     // Animation
  16.     private Animation left_in, left_out;
  17.     private Animation right_in, right_out;


  18.     /** Called when the activity is first created. */
  19.     @Override
  20.     public void onCreate(Bundle savedInstanceState) {
  21.         requestWindowFeature(Window.FEATURE_NO_TITLE);
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.main);
  24.         prepareAnim();
  25.         prepareIntent();
  26.         setupIntent();
  27.         prepareView();
  28.     }

  29.     private void prepareAnim() {
  30.         left_in = AnimationUtils.loadAnimation(this, R.anim.left_in);
  31.         left_out = AnimationUtils.loadAnimation(this, R.anim.left_out);

  32.         right_in = AnimationUtils.loadAnimation(this, R.anim.right_in);
  33.         right_out = AnimationUtils.loadAnimation(this, R.anim.right_out);
  34.     }

  35.     private void prepareView() {
  36.         mBut1 = (ImageView) findViewById(R.id.imageView1);
  37.         mBut2 = (ImageView) findViewById(R.id.imageView2);
  38.         mBut3 = (ImageView) findViewById(R.id.imageView3);
  39.         mBut4 = (ImageView) findViewById(R.id.imageView4);
  40.         mBut5 = (ImageView) findViewById(R.id.imageView5);
  41.         findViewById(R.id.channel1).setOnClickListener(this);
  42.         findViewById(R.id.channel2).setOnClickListener(this);
  43.         findViewById(R.id.channel3).setOnClickListener(this);
  44.         findViewById(R.id.channel4).setOnClickListener(this);
  45.         findViewById(R.id.channel5).setOnClickListener(this);
  46.         mCateText1 = (TextView) findViewById(R.id.textView1);
  47.         mCateText2 = (TextView) findViewById(R.id.textView2);
  48.         mCateText3 = (TextView) findViewById(R.id.textView3);
  49.         mCateText4 = (TextView) findViewById(R.id.textView4);
  50.         mCateText5 = (TextView) findViewById(R.id.textView5);
  51.     }

  52.     private void prepareIntent() {
  53.         mHomeItent = new Intent(this, HomeActivity.class);
  54.         mChannelIntent = new Intent(this, ChannelActivity.class);
  55.         mAccountIntent = new Intent(this, AccountActivity.class);
  56.         mSearchIntent = new Intent(this, SearchActivity.class);
  57.         mMoreIntent = new Intent(this, MoreActivity.class);
  58.     }

  59.     @Override
  60.     public boolean onKeyDown(int keyCode, KeyEvent event) {
  61.         // TODO Auto-generated method stub
  62.         if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
  63.             mBut1.performClick();
  64.             return true;
  65.         }
  66.         return super.onKeyDown(keyCode, event);
  67.     }

  68.     private void setupIntent() {
  69.         mTabHost = getTabHost();
  70.         mTabHost.addTab(buildTabSpec(TAB_TAG_HOME, R.string.category_home,
  71.                 R.drawable.icon_1_n, mHomeItent));
  72.         mTabHost.addTab(buildTabSpec(TAB_TAG_CHANNEL,
  73.                 R.string.category_channel, R.drawable.icon_2_n, mChannelIntent));
  74.         mTabHost.addTab(buildTabSpec(TAB_TAG_SEARCH, R.string.category_search,
  75.                 R.drawable.icon_3_n, mSearchIntent));
  76.         mTabHost.addTab(buildTabSpec(TAB_TAG_ACCOUNT,
  77.                 R.string.category_account, R.drawable.icon_4_n, mAccountIntent));
  78.         mTabHost.addTab(buildTabSpec(TAB_TAB_MORE, R.string.category_more,
  79.                 R.drawable.icon_5_n, mMoreIntent));
  80.     }

  81.     private TabHost.TabSpec buildTabSpec(String tag, int resLabel, int resIcon,
  82.             final Intent content) {
  83.         return mTabHost
  84.                 .newTabSpec(tag)
  85.                 .setIndicator(getString(resLabel),
  86.                         getResources().getDrawable(resIcon))
  87.                 .setContent(content);
  88.     }

  89.     public static void setCurrentTabByTag(String tab) {
  90.         mTabHost.setCurrentTabByTag(tab);
  91.     }

  92.     @Override
  93.     public void onClick(View v) {
  94.         // TODO Auto-generated method stub
  95.         if (mCurTabId == v.getId()) {
  96.             return;
  97.         }
  98.         mBut1.setImageResource(R.drawable.icon_1_n);
  99.         mBut2.setImageResource(R.drawable.icon_2_n);
  100.         mBut3.setImageResource(R.drawable.icon_3_n);
  101.         mBut4.setImageResource(R.drawable.icon_4_n);
  102.         mBut5.setImageResource(R.drawable.icon_5_n);
  103.         mCateText1.setTextColor(COLOR1);
  104.         mCateText2.setTextColor(COLOR1);
  105.         mCateText3.setTextColor(COLOR1);
  106.         mCateText4.setTextColor(COLOR1);
  107.         mCateText5.setTextColor(COLOR1);
  108.         int checkedId = v.getId();
  109.         final boolean o;
  110.         if (mCurTabId < checkedId)
  111.             o = true;
  112.         else
  113.             o = false;
  114.         if (o)
  115.             mTabHost.getCurrentView().startAnimation(left_out);
  116.         else
  117.             mTabHost.getCurrentView().startAnimation(right_out);
  118.         switch (checkedId) {
  119.         case R.id.channel1:
  120.             mTabHost.setCurrentTabByTag(TAB_TAG_HOME);
  121.             mBut1.setImageResource(R.drawable.icon_1_c);
  122.             mCateText1.setTextColor(COLOR2);
  123.             break;
  124.         case R.id.channel2:
  125.             mTabHost.setCurrentTabByTag(TAB_TAG_CHANNEL);
  126.             mBut2.setImageResource(R.drawable.icon_2_c);
  127.             mCateText2.setTextColor(COLOR2);
  128.             break;
  129.         case R.id.channel3:
  130.             mTabHost.setCurrentTabByTag(TAB_TAG_SEARCH);
  131.             mBut3.setImageResource(R.drawable.icon_3_c);
  132.             mCateText3.setTextColor(COLOR2);
  133.             break;
  134.         case R.id.channel4:
  135.             mTabHost.setCurrentTabByTag(TAB_TAG_ACCOUNT);
  136.             mBut4.setImageResource(R.drawable.icon_4_c);
  137.             mCateText4.setTextColor(COLOR2);
  138.             break;
  139.         case R.id.channel5:
  140.             mTabHost.setCurrentTabByTag(TAB_TAB_MORE);
  141.             mBut5.setImageResource(R.drawable.icon_5_c);
  142.             mCateText5.setTextColor(COLOR2);
  143.             break;
  144.         default:
  145.             break;
  146.         }

  147.         if (o)
  148.             mTabHost.getCurrentView().startAnimation(left_in);
  149.         else
  150.             mTabHost.getCurrentView().startAnimation(right_in);
  151.         mCurTabId = checkedId;
  152.     }
  153. }

Android源码之高仿爱奇艺