zoukankan      html  css  js  c++  java
  • ImageSwitcher 右向左滑动的实现方式

    ImageSwitcher is;
    ...
    is.setInAnimation(this, android.R.anim.slide_in_left);
    is.setOutAnimation(this, android.R.anim.slide_out_right);

    上面实现了从左向右滑动的效果,可是反过来,从右向左滑动怎么实现呢?

    默认情况下 android.R.anim.slide_in_right 和 android.R.anim.slide_out_left是私有的,也就是说通过.属性是找不到的.

    解决办法:slide_in_right和slide_out_left这两个xml都可以在sdk里找到的,修改后作为自己的资源调用就好了

    platformsandroid-10data esanim下找到下面两个xml文件.

    slide_in_right

    slide_out_left

    最后放到项目 res->anim下面

    imgSwitcher.setOnTouchListener(new OnTouchListener() {
    
                @Override
                public boolean onTouch(View v, MotionEvent event) {
                    // TODO Auto-generated method stub
    
                    if (event.getAction() == MotionEvent.ACTION_DOWN) {
    
                        downX = (int) event.getX(); // 取得按下时的坐标
    
                        Log.i("event.getX()", " downX " + downX);
                        return true;
                    } else if (event.getAction() == MotionEvent.ACTION_UP) {
    
                        upX = (int) event.getX(); // 取得松开时的坐标
    
                        Log.i("event.getX()", " upX " + downX);
    
                        // 从左拖到右,即看前一张
                        if (upX - downX > 100) {
    
                            imgSwitcher.setInAnimation(AnimationUtils
                                    .loadAnimation(firstActivity.this,
                                            android.R.anim.slide_in_left));
                            imgSwitcher.setOutAnimation(AnimationUtils
                                    .loadAnimation(firstActivity.this,
                                            android.R.anim.slide_out_right));
                            curIndex--;
    
                            if (curIndex < 0) {
                                curIndex = 5;
                            }
    
                            imgSwitcher.setImageResource(IMAGE_LIST[curIndex]);
                            firstActivity.this.switchTitle(curIndex);
    
                        } else if (downX - upX > 100) { // 从右拖到左,即看后一张
    
                            imgSwitcher.setInAnimation(AnimationUtils
                                    .loadAnimation(firstActivity.this,
                                            R.anim.slide_out_left));
                            imgSwitcher.setOutAnimation(AnimationUtils
                                    .loadAnimation(firstActivity.this,
                                            R.anim.slide_in_right));
                            curIndex++;
                            if (curIndex > 5) {
                                curIndex = 0;
                            }
                            imgSwitcher.setImageResource(IMAGE_LIST[curIndex]);
                            firstActivity.this.switchTitle(curIndex);
                        }
                        return true;
                    }
                    return false;
                }
            });
  • 相关阅读:
    MySQL 分库分表方案
    MySQL高性能优化实战总结
    MySQL太慢?试试这些诊断思路和工具
    Get MySQL这5个优化技巧
    一次MySQL两千万数据大表的优化过程,三种解决方案
    MySQL 常用30种SQL查询语句优化方法
    掌握 MySQL 这 19 个骚操作,效率至少提高3倍
    分分钟解决 MySQL 查询速度慢与性能差
    总结 | 慢 SQL 问题经验总结
    MySQL主从延时这么长,要怎么优化?
  • 原文地址:https://www.cnblogs.com/101key/p/3648520.html
Copyright © 2011-2022 走看看