仿微信(网易的界面)

第一步: AndroidManifest.xml 的配置

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.example.viewpageindicator"
  4. android:versionCode="1"
  5. android:versionName="1.0" >
  6.  
  7. <uses-sdk
  8. android:minSdkVersion="8"
  9. android:targetSdkVersion="16" />
  10.  
  11. <application
  12. android:allowBackup="true"
  13. android:icon="@drawable/ic_launcher"
  14. android:label="@string/app_name"
  15. android:theme="@style/StyledIndicators" > //定义了 一些样式
  16. <activity
  17. android:name="com.example.viewpageindicator.MainActivity"
  18. android:label="@string/app_name" >
  19. <intent-filter>
  20. <action android:name="android.intent.action.MAIN" />
  21.  
  22. <category android:name="android.intent.category.LAUNCHER" />
  23. </intent-filter>
  24. </activity>
  25. </application>
  26.  
  27. </manifest>

  样式

  1. <style name="StyledIndicators" parent="@android:style/Theme.Light">
  2. <item name="vpiTabPageIndicatorStyle">@style/CustomTabPageIndicator</item>
  3. </style>
  4.  
  5. <style name="CustomTabPageIndicator" parent="Widget.TabPageIndicator"> // 继承liberary下样式, 重写一些样式
  6. <item name="android:background">@drawable/tab_indicator</item> // 标题的颜色 ,和指示器
  7. <item name="android:textAppearance">@style/CustomTabPageIndicator.Text</item>
  8. <item name="android:textSize">14sp</item>
  9. <item name="android:dividerPadding">8dp</item>
  10. <item name="android:showDividers">middle</item>
  11. <item name="android:paddingLeft">10dp</item>
  12. <item name="android:paddingRight">10dp</item>
  13. <item name="android:fadingEdge">horizontal</item>
  14. <item name="android:fadingEdgeLength">8dp</item>
  15. </style>
  16.  
  17. <style name="CustomTabPageIndicator.Text" parent="android:TextAppearance.Medium">
  18. <item name="android:typeface">monospace</item>
  19. <item name="android:textColor">@drawable/selector_tabtext</item> // 选择器
  20. </style>

  选择器selector_tabtext.xml  和tab_indicator.xml

  1. <?xml version="1.0" encoding="utf-8"?> //selector_tabtext
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">
  3. <item android:state_selected="true" android:color="#EE2C2C" />
  4. <item android:state_pressed="true" android:color="#EE2C2C" />
  5. <item android:state_focused="true" android:color="#EE2C2C" />
  6. <item android:color="@android:color/black"/>
  7. </selector>
  1. <selector xmlns:android="http://schemas.android.com/apk/res/android"> //tab_indicator
  2. <item android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" />
  3. <item android:state_selected="false" android:state_pressed="true" android:drawable="@android:color/transparent" />
  4. <item android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/base_tabpager_indicator_selected" />
  5. <item android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/base_tabpager_indicator_selected" />
  6. </selector>

第二步 :class MainActivity extends FragmentActivity

  1. /**
  2. * Tab标题
  3. */
  4. private static final String[] TITLE = new String[] { "头条", "房产", "另一面"
  5. };
  6.  
  7. @Override
  8. protected void onCreate(Bundle savedInstanceState) {
  9. super.onCreate(savedInstanceState);
  10. setContentView(R.layout.activity_main);
  11.  
  12. //ViewPager的adapter
  13. FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());
  14. ViewPager pager = (ViewPager)findViewById(R.id.pager);
  15. pager.setAdapter(adapter); //viewpage设置值
  16.  
  17. //实例化TabPageIndicator然后设置ViewPager与之关联
  18. TabPageIndicator indicator = (TabPageIndicator)findViewById(R.id.indicator);
  19. indicator.setViewPager(pager); //下标 绑定 page
  20.  
  21. //如果我们要对ViewPager设置监听,用indicator设置就行了
  22. indicator.setOnPageChangeListener(new OnPageChangeListener() {
  23.  
  24. @Override
  25. public void onPageSelected(int arg0) {
  26. Toast.makeText(getApplicationContext(), TITLE[arg0], Toast.LENGTH_SHORT).show();
  27. }
  28.  
  29. @Override
  30. public void onPageScrolled(int arg0, float arg1, int arg2) {
  31.  
  32. }
  33.  
  34. @Override
  35. public void onPageScrollStateChanged(int arg0) {
  36.  
  37. }
  38. });
  39.  
  40. }
  41.  
  42. /**
  43. * ViewPager适配器
  44. * @author len
  45. *
  46. */
  47. class TabPageIndicatorAdapter extends FragmentPagerAdapter {
  48. public TabPageIndicatorAdapter(FragmentManager fm) {
  49. super(fm);
  50. }
  51.  
  52. @Override
  53. public Fragment getItem(int position) {
  54. //新建一个Fragment来展示ViewPager item的内容,并传递参数
  55. Fragment fragment = new ItemFragment();
  56. Bundle args = new Bundle();
  57. args.putString("arg", TITLE[position]);
  58. fragment.setArguments(args);
  59.  
  60. return fragment;
  61. }
  62.  
  63. @Override
  64. public CharSequence getPageTitle(int position) {
  65. return TITLE[position%TITLE.length ]; // 取数组里面的值 最为title
  66. }
  67.  
  68. @Override
  69. public int getCount() {
  70. return TITLE.length;
  71. }
  72. }

Fragment

  1. public class ItemFragment extends Fragment {
  2.  
  3. @Override
  4. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  5. Bundle savedInstanceState) {
  6.  
  7. View contextView = inflater.inflate(R.layout.fragment_item, container, false);
  8.  
  9. TextView mTextView = (TextView) contextView.findViewById(R.id.textview);
  10.  
  11. //获取Activity传递过来的参数
  12. Bundle mBundle = getArguments();
  13. String title = mBundle.getString("arg");
  14. mTextView.setText(title);
  15. return contextView;
  16. }
  17. @Override
  18. public void onActivityCreated(Bundle savedInstanceState) {
  19. super.onActivityCreated(savedInstanceState);
  20. }
  21.  
  22. }

ViewPageIndicator--仿网易的使用的更多相关文章

  1. 类似掌盟的Tab页 Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签 (转)

    原博客地址  :http://blog.csdn.net/xiaanming/article/details/10766053 本文转载,记录学习用,如有需要,请到原作者网站查看(上面这个网址) 之前 ...

  2. Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻clientTab标签

    之前用JakeWharton的开源框架ActionBarSherlock和ViewPager实现了对网易新闻clientTab标签的功能,ActionBarSherlock是在3.0下面的机器支持Ac ...

  3. Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10766053 之前用JakeWharton的开源框架ActionBarSherlock ...

  4. Android 开源框架ActionBarSherlock 和 ViewPager 仿网易新闻客户端

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9971721 大家都知道Android的ActionBar是在3.0以上才有的,那么在3 ...

  5. iOS仿网易新闻栏目拖动重排添加删除效果

    仿网易新闻栏目选择页面的基本效果,今天抽了点时间教大家如何实现UICollectionView拖动的效果! 其实实现起来并不复杂,这里只是基本的功能,没有实现细节上的修改,连UI都是丑丑的样子,随手画 ...

  6. 仿网易漂亮的TAB选项卡(标签)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 仿网易新闻app下拉标签选择菜单

    仿网易新闻app下拉标签选择菜单 仿网易新闻app下拉标签选择菜单,长按拖动排序,点击增删标签控件 ##示例  ##EasyTagDragView的使用 在layout布局里添加:  

  8. Android Studio精彩案例(一)《ActionBar和 ViewPager版仿网易新闻客户端》

    转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 为了能更好的分享高质量的文章,所以开设了此专栏.文章代码都以Android Studio亲测运行,读者朋友可在后面直接下载源码.该专栏 ...

  9. 仿网易nec首页动画效果

    仿网页nec首页动画效果nec链接:http://nec.netease.com/ 首先,介绍animationanimation检索或设置对象所应用的动画特效.animation由“keyframe ...

  10. 基于Node.js+MySQL开发的开源微信小程序B2C商城(页面高仿网易严选)

    界面高仿网易严选商城(主要是2016年wap版) 测试数据采集自网易严选商城 功能和数据库参考ecshop 服务端api基于Node.js+ThinkJS+MySQL 计划添加基于Vue.js的后台管 ...

随机推荐

  1. 分析DNS解析时间

    提高网页的打开速度,一般地我们会选择使用CDN,利用“就近原则”让用户在最短的时间内获取到服务器资源,实际应用当中采用CDN的方式提高网站访问速度的效果也是最明显的.这也就是为什么国外的空间打开速度远 ...

  2. php基本语法与函数

    1.标记与注释 <?php 代码 ?> 用/*  */注释一段代码,  用 // 注释一行代码   /**    */文档注释 注意:若php下面只有php代码没有别的代码,那么最好不要加 ...

  3. FreeMarker使用后台枚举

    //页面使用枚举全路径访问 model.addAttribute("enums", BeansWrapper.getDefaultInstance().getEnumModels( ...

  4. import from 'xxx'是如何找到node_modules目录下的

    起初我认为这是ES6或者Webpack的语法,但查阅相关API后并没有相关说明,通过进一步地搜索,才知道这是Node模块系统的约定和实现(Webpack打包工具是兼容node模块系统的,自然遵守相关规 ...

  5. Android关闭USB的ADB调试和文件传输功能(禁用USB)【转】

    本文转载自:https://blog.csdn.net/jun4331247/article/details/51201825 通过设置系统属性(System Property)[persist.sy ...

  6. wget 监控web服务器

    wget --timeout=$timeout --tries=$times $url -q &>/dev/null --timeout=number 设定超时时间 --tries=nu ...

  7. poj3301 Texas Trip【三分算法】

    题目地址:http://poj.org/problem?id=3301 简述:T组测试数据,每组线输入n,代表有n个点,接下来输入这n个点的坐标,坐标都是整数. 要求用一个最小的正方形覆盖所有的点,输 ...

  8. Unigui unidbgrid+unidac uniquery联合使用时产生的奇葩问题

    如下一个uniquery查询: SELECT a.id,a.userid,a.name,if(a.completed='T',CONCAT('<a  class="icons" ...

  9. EntityFramework 学习 一 Explicit Loading with DBContext

    即使延迟加载不能使用,也可以通过明确的调用来延迟加载相关实体 使用DBEntryEntity来完成 using (var context = new SchoolDBEntities()) { //D ...

  10. 算法(Algorithms)第4版 练习 1.5.15

    用归纳法推导: 1.height = 0时,成立,其level 0的节点个数为C(0,0)=1. height = 1时,成立,其level 0的节点个数为C(1,0)=1,其level 1的节点个数 ...