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里找到的,修改后作為自己的資源調用就好了

platforms\android-10\data\res\anim\下找到下面兩個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 = ( intevent.getX();  //  取得按下時的坐標

                    Log.i( " event.getX() ""  downX  " + downX);
                     return  true;
                }  else  if ( event.getAction() == MotionEvent.ACTION_UP) {

                    upX = ( intevent.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;
            }
        });

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM