Android攻城狮ViewFlipper
使用ViewFlipper实现屏幕切换动画效果。 ViewFlipper和ViewPager一样,都是Android自带的一个多页面管理控件,不同的是ViewPager是手动切换页面,而ViewFlipper可以实现子界面的自动切换。只需设置切换时间和切换的动画效果,ViewFlipper里面的视图就会自动循环播放。 ------------------------ 为ViewFlipper添加View (1)静态导入:在layout布局文件中直接导入,不需要写额外的Java代码,缺点:直接写死,非常不灵活,所以不推荐使用。 (2)动态导入:addView()方法: flipper=(ViewFlipper)findViewById(R.i.flipper); flipper.addView(getImageView(R.drawable.pic1)); flipper.addView(getImageView(R.drawable.pic2)); --------------------------------- ViewFlipper常用的方法:1)、SetInAnimation:设置View进入屏幕时候使用的动画2)、setOutAnimation:设置View退出屏幕时候使用的动画3)、showNext:调用该函数来显示ViewFlipper里面的下一个View4)、showPrevious:调用该函数来显示ViewFlipper里面的上一个View5)、setFilpInterval:设置View之间切换的时间间隔6)、startFlipping:使用上面设置的时间间隔来开始切换所有的View,切换会循环进行7)、stopFlipping:停止View切换
实现动画效果的步骤 1. 创建文件夹anim,放置实现动画效果的xml文件。在drawable中放置图片资源。 2. 在 main.xml中放置<ViewFlipper> 3. 在MainActivity中创建 int数组,放置图片id。 4. 初始化ViewFlipper,动态导入子View:for (int i=0;i<resId.length;i++){flipper.addView(getImageView(resId[i]));} 这里自定义了方法 private ImageView getImageView(int resId){ImageView image = new ImageView(this);//image.setImageResource(resId);//不采取此方法的原因:ImageView的宽高完全取决于图片的宽高,不符合“全屏展示”的要求image.setBackgroundResource(resId);//background可以铺满整个屏幕return image;} 5. 设置动画效果 //设置切换的动画效果flipper.setInAnimation(this,R.anim.left_in);//Animation:动画。这里说是页面进入的动画(InAnimation)采用从左进入。flipper.setOutAnimation(this,R.anim.left_out);flipper.setFlipInterval(3000);//切换的时间间隔,单位毫秒flipper.startFlipping();//开启动画
1 //手机滑动-实现自动播放 2 public class MainActivity extends Activity { 3 private ViewFlipper flipper; 4 //资源图片 5 private int[] resId = { R.drawable.a, R.drawable.b, R.drawable.c, 6 R.drawable.d }; 7 private float startX;//手势滑动时,手指落下的起始坐标 8 9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 super.onCreate(savedInstanceState); 12 setContentView(R.layout.main); 13 flipper = (ViewFlipper) findViewById(R.id.fliper); 14 // 动态导入的方式为ViewFlipper加载子view 15 for (int i = 0; i < resId.length; i++) { 16 flipper.addView(getImageView(resId[i])); 17 } 18 19 20 // 方式一:为ViewFlippe添加动画效果实现自动切换图片 21 22 // flipper.setInAnimation(this, R.anim.abc_slide_in_bottom); 23 // flipper.setOutAnimation(this, R.anim.abc_slide_out_bottom); 24 // 25 // flipper.setFlipInterval(3000);// 3秒切换 为ViewFlippe视图切换的时间间隔 26 // flipper.startFlipping();// 开始播放 27 28 } 29 30 //方式二:支持手势滑动的ViewFlipper 31 //监控手势滑动事件的处理 32 @Override 33 public boolean onTouchEvent(MotionEvent event) { 34 // TODO Auto-generated method stub 35 switch (event.getAction()) { 36 // 手指落下 37 case MotionEvent.ACTION_DOWN: { 38 startX = event.getX();//获得横向的起始坐标 39 break; 40 } 41 42 // 手指滑动 43 case MotionEvent.ACTION_MOVE: { 44 // 设置差值大于100,是为了过滤掉微小的滑动 45 if (event.getX() - startX > 50) { 46 // 向右滑动 看前一页 47 flipper.setInAnimation(this, R.drawable.left_in); 48 flipper.setOutAnimation(this, R.drawable.left_out); 49 50 flipper.showPrevious();//显示前一页 51 52 } 53 if (startX - event.getX() > 50) { 54 // 向左滑动 看后一页 55 flipper.setInAnimation(this, R.drawable.right_in); 56 flipper.setOutAnimation(this, R.drawable.right_out); 57 58 flipper.showNext();// 显示后一页 59 } 60 break; 61 } 62 // 手指离开 63 case MotionEvent.ACTION_UP: { 64 65 break; 66 } 67 68 } 69 return super.onTouchEvent(event); 70 } 71 72 public ImageView getImageView(int resId) { 73 74 ImageView image = new ImageView(this); 75 // image.setImageResource(resId); 图片原来的宽高 76 image.setBackgroundResource(resId);// 铺满全屏的 77 return image; 78 79 } 80 81 }
转载于:https://www.cnblogs.com/my334420/p/6714753.html
Android攻城狮ViewFlipper相关推荐
- 写给即将/正在找工作的Android攻城狮
写给即将/正在找工作的Android攻城狮 版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com 这段时间从北上广深杭不断传来一两个月找不到工作的消息,我一 ...
- Android攻城狮ListView
适配器: 数据适配器:把复杂的数据填充在指定的视图界面上ArrayAdapter 数组适配器 用于绑定格式单一的数据 数据源:可以是集合或数组 SimpleAdapter 简单适配器:用于绑定格式复杂 ...
- Android攻城狮Gallery和ImageSwitcher制作图片浏览器
使用Gallery 和 ImageSwitcher 制作图片浏览器 Gallery介绍 我们有时候在手机上或者PC上看到动态的图片,可以通过鼠标或者手指触摸来移动它,产生动态的图片滚动效果,还可以根据 ...
- Android攻城狮GestureDetector和GestureOverlayView
手势识别 可以通过以下两种方式实现: 1. 使用GestureDetector 2. 使用GestureOverlayView(属于线程的控件)手势交互过程(原理): 1. 触屏一刹那,触发 Moti ...
- Android攻城狮fragment
1 //1,fragment静态加载:MainActivity MainActivty1_2 Myfragment1 2 //2,fragment动态加载 :MainActivity Myfragme ...
- Android攻城狮ScrollView
ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图. ----------------------------- ScrollBar分两种: ...
- Android攻城狮数据存储之SharedPreferences
Android的四种数据存储方式: 1. SharedPreferences 2. SQLite 3. Content Provider 4. File --------------------- S ...
- Android攻城狮认识ContextMenu
什么是ContextMenu? 例如Windows系统的右键菜单,在Android中长按某个文件夹,会跳出菜单,这个菜单就是ContextMenu. ContextMenu与OptionMenu的区别 ...
- Android攻城狮OptionsMenu
Android的菜单一共有三种: OptionsMenu 选择菜单 ContextMenu 上下文菜单 SubMenu 子菜单创建选项菜单: 在 Activity 里面重写 onCreateOptio ...
最新文章
- Ubuntu 16.04下部署Graylog日志服务器
- 农林行业的系统应用 php专业,农林|类专业
- android任务栈的作用,Android 启动模式以及任务栈
- superset出现A valid API access token is required to use Mapbox data
- 边缘计算框架_【北大成果】一种集成多组网协议多边缘计算框架的边缘计算处理平台...
- mysql 不能用dbcontext_EntityFramework中的DbContext使用疑点说明
- php的cms是什么意思,phpcms是什么
- 记录一次网盘资源不给提取码的经历!另类编程思维,Python破之!
- 全新 AI 语音芯片、双麦 AIoT 模组,科大讯飞硬核技术助力智能家电创新
- CocoaLumberjack
- discoverer初始化环境
- 数字电视机顶盒的基本知识介绍
- Echarts带渐变色的折线图
- 公告栏模板php代码,如何实现手机端公告栏显示
- 2023年重庆邮电大学计算机科学与技术(802)初试经验贴
- 《惢客创业日记》2019.04.25(周四)如何解决骚扰电话?
- Smart3D系列教程6之 《案例实战演练3——倾斜数据正射影像及DSM的生产》
- intellij idea 工具栏的隐藏和显示
- 适合新手的MySQL的基本操作第三期——存储过程篇
- 58同城和赶集网要合并了!