使用viewFilpper,实现左右滚动的相册
来源:互联网 发布:pptv网络电视官方 编辑:程序博客网 时间:2024/05/19 12:11
1、xml--------------------------》
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ViewFlipper android:id="@+id/flipper" android:layout_width="match_parent" android:layout_height="match_parent"></ViewFlipper></LinearLayout>2、MainActivity代码-----------------------》
public class MainActivity extends AppCompatActivity implements GestureDetector.OnGestureListener { ViewFlipper filpper; GestureDetector detector;//手势识别器 Animation[] animations = new Animation[4];//定义动画数组,用于为viewflipper指定切换动画效果 final int FLIP_DISTANCE = 50;//定义手势冬至两点之间的最小距离 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); detector = new GestureDetector(this, this); filpper = ((ViewFlipper) findViewById(R.id.flipper)); //为filpper添加留个imageview控件 filpper.addView(addImageView(R.mipmap.p1)); filpper.addView(addImageView(R.mipmap.p2)); filpper.addView(addImageView(R.mipmap.p3)); filpper.addView(addImageView(R.mipmap.p4)); filpper.addView(addImageView(R.mipmap.p5)); filpper.addView(addImageView(R.mipmap.p6)); //初始化Animation数组 animations[0] = AnimationUtils.loadAnimation(this, R.anim.slide_in_right); animations[1] = AnimationUtils.loadAnimation(this, R.anim.slide_out_left); animations[2] = AnimationUtils.loadAnimation(this, R.anim.slide_in_left); animations[3] = AnimationUtils.loadAnimation(this, R.anim.slide_out_right); } private View addImageView(int resId) { ImageView imageView = new ImageView(this); imageView.setImageResource(resId); imageView.setScaleType(ImageView.ScaleType.CENTER); return imageView; } @Override public boolean onDown(MotionEvent e) { return false; } @Override public void onShowPress(MotionEvent e) { } @Override public boolean onSingleTapUp(MotionEvent e) { return false; } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { return false; } @Override public void onLongPress(MotionEvent e) { } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { if (e1.getX() - e2.getX() > FLIP_DISTANCE) { //说明是从右往左滑动 filpper.setInAnimation(animations[0]); filpper.setOutAnimation(animations[1]); filpper.showPrevious(); return true; } if (e1.getX() - e2.getX() < FLIP_DISTANCE) { //说明是从左往右滑 filpper.setInAnimation(animations[2]); filpper.setOutAnimation(animations[3]); filpper.showPrevious(); return true; } return false; } @Override public boolean onTouchEvent(MotionEvent event) { return detector.onTouchEvent(event); }}3、代码中的动画,在res下面新建一个anim的文件夹:
(1) slid_in_left
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="-100%" android:toXDelta="0%" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="0.5" android:toAlpha="1.0" /></set>
(2)slide_in_right
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="100%" android:toXDelta="0%" /> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="0.5" android:toAlpha="1.0" /></set>
(3)slide_out_left
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0%" android:toXDelta="-100%"></translate> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1.0" android:toAlpha="0" /></set>
(4)slide_out_right
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:duration="@android:integer/config_mediumAnimTime" android:fromXDelta="0%" android:toXDelta="100%"></translate> <alpha android:duration="@android:integer/config_mediumAnimTime" android:fromAlpha="1.0" android:toAlpha="0" /></set>
0 1
- 使用viewFilpper,实现左右滚动的相册
- ViewFilpper、Gesture 实现图片左右滑动切换
- ViewFilpper实现多个TextView上下滚动
- 使用ul li 实现图片的左右滚动
- [NGUI]用SrollViewPanel实现相册的滚动。
- jquery插件实现图片的左右滚动
- Android的实现左右滚动效果
- jquery实现图片的左右滚动
- html 实现文字左右滚动的方法
- JS实现文字的左右滚动
- 实现滚动相册效果
- js实现左右滚动
- 使用jQuery简单实现产品展示的图片左右滚动功能
- 使用jQuery简单实现产品展示的图片左右滚动功能
- 使用JS实现图片无限循环左右滚动
- 不用Margin使用jQuery实现左右滚动效果
- android实现左右上下滚动
- 用ViewGroup实现左右滚动
- 关于英文内容页面无法换行
- 设置div的最小高度并且自适应高度
- 鼠标移动图片向上滚动
- 背景图拉伸效果兼容各种浏览器
- 解决IE浏览器li下list-style-type无效的问题
- 使用viewFilpper,实现左右滚动的相册
- 【转载】JS实现淘宝 放大镜效果
- 首页banner图轮播效果
- 背景图片切换效果
- 弹出层设置z-index后在浏览器中的兼容性
- ie兼容问题
- 在页面中插入flash播放器
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 让IE浏览器支持CSS3圆角属性的方法