- 浏览: 605404 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
package com.test.activity; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.graphics.Matrix; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.animation.Animation; import android.view.animation.TranslateAnimation; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.test.R; public class TabActivity extends Activity { private ViewPager viewPager;// 可滑动的页卡内容,也就是我们主要练习的目标 private ImageView imageView;// 类似游标的动画图片,这个就是那个左右滑动的小滑块 private TextView textView1, textView2, textView3; private List<View> views;// 页面列表 private int offset = 0;// 游标移动的偏移量 private int currentIndex = 0;// 当前页面号码 private int bmpW;// 游标宽度 private View view1, view2, view3;// 各个页面卡片 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.tab); InitImageView(); InitTextView(); InitViewPager(); } @SuppressWarnings("all") private void InitViewPager() { viewPager = (ViewPager) findViewById(R.id.vPager); views = new ArrayList<View>(); LayoutInflater inflater = getLayoutInflater();// 这个在我前面写的几篇里面有介绍Inflater view1 = inflater.inflate(R.layout.lay1, null); view2 = inflater.inflate(R.layout.lay2, null); view3 = inflater.inflate(R.layout.lay3, null); views.add(view1); views.add(view2); views.add(view3); // ViewPager跟ListView一样,也需要一个适配器,后面对PagerAdapter进行重写 viewPager.setAdapter(new MyViewPagerAdapter(views)); // 默认显示第一个卡片页 viewPager.setCurrentItem(0); // 给ViewPager加监听器 viewPager.setOnPageChangeListener(new MyOnPageChangeListener()); } private void InitTextView() { textView1 = (TextView) findViewById(R.id.tt1); textView2 = (TextView) findViewById(R.id.tt2); textView3 = (TextView) findViewById(R.id.tt3); textView1.setOnClickListener(new MyOnClickLis(0)); textView2.setOnClickListener(new MyOnClickLis(1)); textView3.setOnClickListener(new MyOnClickLis(2));// 这些监听器保证在点击头部的标签时候页面也能滑动 } private void InitImageView() { imageView = (ImageView) findViewById(R.id.cursor); bmpW = imageView.getWidth(); DisplayMetrics displayMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int screen = displayMetrics.widthPixels; // 这个地方就是给每个标签左右各留出一块offset,共3个标签,6个offset, offset = (screen - bmpW * 40) / 6; Matrix matrix = new Matrix(); // 向右平移 matrix.postTranslate(offset, 0); // 对图片进行平移操作 imageView.setImageMatrix(matrix); } private class MyOnClickLis implements OnClickListener { private int index; public MyOnClickLis(int index) {// 注意,这里的监听器有一个默认的带参数的构造器,用来确定你点击的是哪一个标签 this.index = index; } @Override public void onClick(View v) { viewPager.setCurrentItem(index); } } // 下面是比较重点的了,就是之前提到过的重写PagerAdapter,重写时候我们至少需要重写一下4个方法,当然这里我们也只写了这4个方法. public class MyViewPagerAdapter extends PagerAdapter { private List<View> mListView; public MyViewPagerAdapter(List<View> views) { this.mListView = views; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView(mListView.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { container.addView(mListView.get(position)); return mListView.get(position); } @Override public int getCount() { return mListView.size(); } @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } } public class MyOnPageChangeListener implements OnPageChangeListener { int one = offset * 2 + bmpW;// 卡片1 --> 卡片2 偏移量 int two = one * 2;// 卡片2 --> 卡片3 偏移量 @Override public void onPageScrollStateChanged(int arg0) { // arg0 ==1的时候表示正在滑动,arg0==2的时候表示滑动完毕了,arg0==0的时候表示什么都没做,就是停在那。 } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { // 表示在前一个页面滑动到后一个页面的时候,在前一个页面滑动前调用的方法 } @Override public void onPageSelected(int position) { // 左右移动动画 Animation animation = new TranslateAnimation(one * currentIndex, one * position, 0, 0); currentIndex = position; // 图片停留在动画结束的位置 animation.setFillAfter(true); animation.setDuration(100); imageView.startAnimation(animation); Toast.makeText(TabActivity.this, "卡片移向了第" + position + "页", Toast.LENGTH_SHORT).show(); } } }
- AndroidTest.zip (4.4 MB)
- 下载次数: 2
发表评论
文章已被作者锁定,不允许评论。
-
android BaseActivity与BaseFragment的封装
2016-05-19 15:06 10651 概述 多模块Activity+多Fragment 是开发 ... -
android ScrollView常用属性
2016-05-09 09:17 745android:scrollbars 设置滚动条显示。none ... -
android RecyclerView使用及详解
2016-05-04 10:35 29411.前言 话说RecyclerView已经面市很久,也在很多 ... -
android DialogFragment 创建对话框(官方推荐)
2016-04-29 14:22 9431、 概述 DialogFragment在android 3. ... -
android Intent Flags及Task相关属性
2016-04-26 09:15 656task是一个具有栈结构的容器,可以放置多个Activity实 ... -
android SQLite具体实例应用详解(SQLiteOpenHelper)
2016-04-18 19:24 858上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们 ... -
android SQLite3常用命令&语法
2016-04-18 19:01 663sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常 ... -
android View绘制相关问题总结
2016-03-28 19:27 7171.View的绘制流程分几步 ... -
android Handler Looper MessageQueue机制的原理
2016-03-22 21:09 804andriod提供了Handler和Looper来满足线程间的 ... -
android Bitmap,BitmapFactory类图像处理
2016-03-16 16:28 2415BitMap代表一张位图,扩展名可以是.bmp或者.dib。 ... -
android 三类菜单(Option) (Context) (SubMenu)学习
2016-03-14 15:23 965在Android系统中,菜单可以分为三类:选项菜单(Optio ... -
android Sqlite数据库对象模型ORMLite框架学习
2016-03-11 15:24 743在Android项目中或多或少的都会使用数据库,为了提高我们的 ... -
android AsyncTask<参数,进度值类型,返回类型>学习
2016-03-10 14:45 1218AsyncTask和Handler对比 1 ... -
android 远程图片获取和本地缓存
2016-03-10 14:32 818概述 对于客户端——服 ... -
android onSaveInstanceState和onRestoreInstanceState学习
2016-03-10 10:08 847Android中的activity通过onSaveInst ... -
android Fragment生命周期和回退栈学习以及Fragment之间通信
2016-03-10 09:31 1568会涉及到Fragment如何产生,什么是Fragment,Fr ... -
android LruCache内存缓存学习(重写sizeOf方法)
2016-03-09 19:25 1100什么是缓存? 缓存技术原理就是把用户访问的所有对象看作一个全 ... -
android ListView中的convertView缓存及使用
2016-03-09 19:12 1752一、复用convertView 首先讲下ListView的原 ... -
android 从资源角度谈Android代码内存优化
2016-03-09 18:54 754开发人员如果在进行代码编写之前就有内存泄露方面的基础知识,那么 ... -
android startActivityForResult和setResult详情及Demo
2016-03-09 08:56 1089startActivityForResult与startAct ...
相关推荐
在Android应用开发中,创建一个具有Tab切换功能的界面是一个常见的需求。...通过学习和实践这个例子,你应该能够熟练地在自己的应用中集成`TabLayout`和`ViewPager`,创建出美观且功能丰富的Tab切换界面。
在这个“xamarin android viewpager例子”中,我们将探讨ViewPager的基本用法以及如何结合PageTabStrip和PageTitleStrip进行更高级的应用。 **ViewPager基本用法** ViewPager本身不直接显示内容,而是依赖于适配器...
总的来说,`Android viewpager+listview例子`是一个很好的实践项目,它涵盖了Android UI设计中的关键组件和交互方式。通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解...
在Android开发中,ViewPager是一个非常重要的组件,常用于创建滑动页面效果,它允许用户左右滑动页面来浏览多个视图。...通过这个简单的实例,开发者能够快速理解和掌握在Android应用中使用ViewPager的基本步骤。
总的来说,`ActionBarTabs`、`ViewPager`和`Fragment`的结合使用是Android开发中实现可滑动Tab页的一种高效方法,它不仅提供了良好的用户体验,也方便了代码组织和维护。通过学习和实践`Support13Demos`中的示例,...
在Android开发中,ViewPager是一个非常重要的组件,它允许用户通过左右滑动来浏览多个页面,通常用于实现Tab切换或者创建类似相册的效果。本实例将详细介绍如何在Android应用中使用ViewPager实现一个简单的滑动切换...
3. **Tab内嵌套ViewPager**:在`TabViewPager嵌套ViewPage.zip`里,示例可能展示了如何在一个TabLayout中嵌套多个ViewPager,实现每个Tab都有独立的页面滑动效果。这种情况下,通常会使用`TabLayout`与`ViewPager`的...
这个"Android例子源码ViewPager手动滑动和自动滑动无限循环滑动加载.zip"的压缩包提供了一个具体的实现示例,帮助开发者理解和学习如何在ViewPager中实现手动滑动、自动滑动以及无限循环滑动加载的功能。 首先,...
这个"简单新手向的ViewPager例子"(ViewPagerDemo)是一个非常适合初学者入门的教程项目。下面将详细介绍ViewPager的基本概念、使用方法以及在实际应用中的常见技巧。 **1. ViewPager的基本概念** ViewPager是...
通过将TabLayout和ViewPager结合使用,可以实现tab和页面的联动效果,本文将详细介绍该实现方法。 首先,需要在布局文件中添加TabLayout和ViewPager控件。TabLayout用于显示标签页,ViewPager用于显示页面内容。...
在标题和描述中提到的例子中,ViewPager与Fragment结合使用,可以创建一个动态的Tab布局,每个Tab对应一个Fragment。用户可以通过滑动ViewPager在不同的Fragment间切换,每个Fragment展示不同的内容。而ActionBar则...
综上所述,实现Android的Tab功能涉及多个知识点,包括TabHost、ActionBar、ViewPager以及Activity和Fragment的交互。理解并掌握这些技术,可以让你构建出具有丰富用户体验的多页面Android应用。在实际开发中,应根据...
ViewPager是Android平台中一个强大的视图滑动组件,它允许用户在多个页面间左右滑动,常用于实现类似...通过理解并实践这个“ViewPager例子代码”,你将能够更好地掌握这一组件,为你的应用增添更多的交互性和动态性。
然而,随着Android设计指南的更新,Google推荐使用`ViewPager`结合`TabLayout`(自Android Design Support Library引入)来创建现代、可定制化的Tab界面。 1. **ViewPager**:`ViewPager`是Android中的一个滑动视图...
本教程将深入探讨如何在Android项目中使用ViewPager,结合Fragment来创建可滑动的页面内容。 首先,我们需要理解ViewPager的基本概念。ViewPager是一个可以水平滑动的容器,它会根据用户滑动的方向加载相邻的页面。...
在Android开发中,创建一个带有顶部Tab控件和多个自定义List列表的界面是一个常见的需求。这个场景通常出现在需要在同一个界面中展示不同类别数据的应用中。以下是对这个主题的详细解析: 首先,我们需要理解“Tab...
3. `TabLayout`配合`PagerAdapter`:`TabLayout`是Android Design Support Library的一部分,用于展示Tab,与`ViewPager`结合可以实现Tab的可视化切换效果。`PagerAdapter`是`ViewPager`的数据适配器,负责为每个Tab...
Tab选项卡通常与ViewPager结合使用,ViewPager可以滑动浏览多个页面,而TabLayout则提供可视化的选项卡来切换这些页面。在布局文件(如`activity_main.xml`)中,添加`TabLayout`和`ViewPager`: ```xml ...
`android viewpager的例子`通常会包括以下步骤: 1. 在布局文件中添加`ViewPager`元素。 ```xml <androidx.viewpager.widget.ViewPager android:id="@+id/view_pager" android:layout_width="match_parent" ...