使用ViewFlipper实现图片自动切换,并支持手势滑动切换
来源:互联网 发布:最终幻想雷霆身材数据 编辑:程序博客网 时间:2024/06/01 09:49
首先来看看项目结构目录:
不好意思,我右开始使用AndroidStudio了 ,开始用不习惯,就特意去搭建了eclipse的开发环境,整了好久,后来发现eclipse还是不如AndroidStudio啊,虽然快捷键那些东西啊用不太习惯,但是相信慢慢都会好的。
首先我们直接看代码吧:
先是activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ViewFlipper android:id="@+id/viewFlipper" android:layout_width="match_parent" android:layout_height="match_parent"></ViewFlipper></LinearLayout>
package com.example.lolli.viewflipper;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.MotionEvent;import android.widget.ImageView;import android.widget.ViewFlipper;/** * 使用ViewFlipper自动切换图片并支持手势滑动切换 */public class MainActivity extends AppCompatActivity { // 定义一个ViewFlipper private ViewFlipper flipper; // 定义一个手指触摸屏幕的x轴坐标 private float startX; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化ViewFlipper flipper = (ViewFlipper) findViewById(R.id.viewFlipper); // 给ViewFlipper添加内容。这里添加四个ImageView flipper.addView(getImageView(R.drawable.shi1)); flipper.addView(getImageView(R.drawable.shi2)); flipper.addView(getImageView(R.drawable.shi3)); flipper.addView(getImageView(R.drawable.shi4)); // 设置自动切换时间间隔5秒 flipper.setFlipInterval(5000); // 设置切换动画 flipper.setInAnimation(this, R.anim.left_in); flipper.setOutAnimation(this, R.anim.left_out); // 开始切换 flipper.startFlipping(); } /** * 创建一个ImageView * @param resId * 图片资源Id * @return * ImageView对象 */ private ImageView getImageView(int resId) { ImageView image = new ImageView(this); image.setBackgroundResource(resId); return image; } /** * 屏幕手势 * @param event * @return */ @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { // 手指接触屏幕 case MotionEvent.ACTION_DOWN: { startX = event.getX(); // 将手指接触屏幕的X轴的坐标保存下来 break; } // 手指滑动屏幕 case MotionEvent.ACTION_UP: { //向右滑动 if (event.getX() - startX > 100) { flipper.setInAnimation(this, R.anim.right_in); flipper.setOutAnimation(this, R.anim.right_out); flipper.showPrevious(); } //向左滑动 if (startX - event.getX() > 100) { flipper.setInAnimation(this, R.anim.left_in); flipper.setOutAnimation(this, R.anim.left_out); flipper.showNext(); } break; } } return super.onTouchEvent(event); }}
onTouchEvent方法就是实现手势操作的切换的代码了,代码注释也比较详细,不用多说应该能看懂,
在这个方法里面有两个方法 <pre name="code" class="java">flipper.showPrevious(); // 即显示上一页的内容
<pre name="code" class="java">flipper.showNext(); // 显示下一页
目录结构里还有个关于动画的文件:
left_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="600" /> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="600" /></set>left_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="600" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="600" /></set>right_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-100%p" android:toXDelta="0" android:duration="600" /> <alpha android:fromAlpha="0.1" android:toAlpha="1.0" android:duration="600" /></set>right_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="100%p" android:duration="600" /> <alpha android:fromAlpha="1.0" android:toAlpha="0.1" android:duration="600" /></set>
0 0
- 使用ViewFlipper实现图片自动切换,并支持手势滑动切换
- ViewFlipper和GestureDetector实现手势切换图片
- Android程序:使用ViewFlipper实现屏幕切换动画及手势滑动切换功能
- ViewFlipper界面自动切换和滑动切换
- ViewFlipper实现图片动态切换、GestureDetector实现手势捕捉
- ViewFlipper实现图片动态切换、GestureDetector实现手势捕捉
- 使用ViewFlipper实现页面自动切换
- Android 使用ViewFlipper实现图片切换
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用。
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- Android使用ViewFlipper做页面切换,与手势滑动切换的使用
- 基于ViewFlipper实现图片切换
- 使用viewflipper实现左右滑动,动态切换view
- Android ViewFlipper滑动屏幕切换图片
- Android ViewFlipper滑动屏幕切换图片
- Android ViewFlipper滑动屏幕切换图片
- ViewFlipper实现界面的滑动切换
- 实现滑动切换效果:ViewFlipper、OnGestureListener
- 访问权限,public private , default ,protected
- 区间覆盖问题
- SPFA算法(求最短路径)
- apache服务的基本概念(DSO、MPM)
- 第五周项目2游戏中的角色类
- 使用ViewFlipper实现图片自动切换,并支持手势滑动切换
- Python图像处理之边缘检测
- 1010.一元多项式求导 (25)
- 删数问题
- J2EE的十三个标准
- BZOJ 1202: [HNOI2005]狡猾的商人
- JMeter Test Plan的组成部分之Thread Group
- 活动选择问题
- LeetCode OJ 之 GenerateParenthesis解题报告