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. }
时间: 2024-10-18 03:21:06

Android源码之高仿爱奇艺的相关文章

Android重量级源码之高仿爱奇艺客户端

Android源码之高仿爱奇艺 支持平台:Android   运行环境:Eclipse   开发语言:Java 下载地址:http://suo.im/6pzhx  源码简介 本源码是一套UI界面,高仿的爱奇艺.没有实现具体功能.本项目默认编码 UTF-8,需要的朋友可以拿去参考一下. 源码运行图    

Android源码_高仿QQ v4.7.0全新UI

QQ v4.7.0全新UI 功能分类:社交     支持平台:Android   运行环境:Android 开发语言:Java     开发工具:Eclipse    源码大小:6.29MB 下载地址:http://sina.lt/zRN 源码简介 QQ v4.7.0全新UI 源码运行截图

【Android源码】高仿京东商城

高仿京东商城 仿照京东商城做出的APP(仅实现了部分界面) 下载地址:http://www.dwz.cn/z8z3J 运行截图      

仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图介绍(一)

请尊重分享成果,转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52327435 前言:本篇只是一个介绍这个一个类库,具体实现思路代码会下篇中进行分析出来, 仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图github地址: https://github.com/hejunlin2013/SuperIndicator , 如果觉得还行,欢迎点个star. SuperIndicator a superindicatorlibray fo

一个仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图类库

前言:本篇只是一个介绍这个一个类库,具体实现思路代码会下篇中进行分析出来, 一个仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图类库,  github地址: https://github.com/hejunlin2013/SuperIndicator , 如果觉得还行,欢迎点个star. SuperIndicator a superindicatorlibray for viewpager, banner 仿爱奇艺视频,腾讯视频,搜狐视频首页推荐位轮播图 专业轮播图库,没有之一 也可以应用于广告

【秋招面试专题解析】Android程序员如何拿到爱奇艺.字节跳动.抖音offer

刚好闲下来,顺便收集了一些关于爱奇艺,字节跳动,抖音的面试题目.也整理好了答案,希望对即将面试和跳槽的小伙伴有所帮助 一.2019爱奇艺秋招Android 1.使用堆排序方法排序(45,78,57,25,41,89),初始堆为( 89,45,78,25,41,57 ) 2.6个圆盘的汉诺塔,总的移动次数是( 63 ) 3.在一个空的5阶B-树中依次插入关键字序列{6,8,15,16,22,10,18,32,20},插入完成后,关键字6所在结点包含的关键字个数为(3) 4.有关希尔排序算法叙述 5

【Android重量级源码】高仿大众点评源码

高仿大众点评源码   下载地址:http://url.cn/Nzj3Lc   源码简介声明:本源码只用于个人研究使用,不可用于商业用途,由于本源码引起的纠纷皆与作者无关. 本套源码是本人在校的时候做的一个练手的列子,高仿大众点评,项目源码不算是太完善,还请专业人士指导并完善他. 源码部分没有完成,服务器部分也不是太完善,只是实现了查询方面的东西. 由于现在没有时间去优化,所以把源码发出来给新手们参考学习,代码不规范的地方还请扣扣告诉我, 我想多向大家学习,充实自己,希望大家多多提供意见让我更快的

安卓源码_高仿茶百科

高仿茶百科                  功能分类:社交      支持平台:Android      运行环境:Eclipse   开发语言:Java     开发工具:Eclipse       源码大小:5.60MB 下载地址:http://t.cn/R7r75M2                     源码简介                                在网上看到的一个高仿茶百科的源码,仔细翻了翻,发现其中还有很对地方值得参考.特拿出来和大家分享一下. 源码运行

iOS新闻应用源码,高仿今日头条源码等

iOS精选源码 城市列表选择 一款非常时尚的照片选择插件 优酷播放按钮动画 BRPickerView是iOS的选择器组件,主要包括:日期选择器.时... 选择位置坐下动画Demo BAButton 图片.文字.倒计时等 git 功能最全的 button 分类 企业级完整iOS项目-<新闻来了> 较为美观的多级展开列表 高仿今日头条6.2.6 Swift 简单画板的swift实现 iOS优质博客 创建一个私有的 Pods 详解 前言骚年,你听说过组件化吗?没有?但你一定玩过乐高玩具,乐高玩具本身