안녕하세요.

리스트 목록을 ViewFlipper  를 이용하여 차례대로 보여주고 싶어 아래와 깉이 코딩하였습니다.

view를 11개 생성하고 차례대로 목록을 만들어주는..

실행은 됩니다.

문제는 메모리에 부하가 걸리네요.. 너무 느리고..

ViewFlipper  를 사용할순 없는걸까요? ㅠㅠ

 

 

 

 

 

 ViewFlipper flipper;
 GestureDetector detector;
 LayoutInflater li;
 View view1, view2, view3, view4, view5, view6, view7, view8, view9, view10, view11;

 


 public void rank_flipper() {


  detector = new GestureDetector(new MyGestureDetector());
  flipper = new ViewFlipper(act);
   
  
  li = LayoutInflater.from(act);  
  view1 = li.inflate(R.layout.rankmain, null);
  view2 = li.inflate(R.layout.rankmain, null);
  view3 = li.inflate(R.layout.rankmain, null);
  view4 = li.inflate(R.layout.rankmain, null);
  view5 = li.inflate(R.layout.rankmain, null);
  view6 = li.inflate(R.layout.rankmain, null);
  view7 = li.inflate(R.layout.rankmain, null);
  view8 = li.inflate(R.layout.rankmain, null);
  view9 = li.inflate(R.layout.rankmain, null);  
  view10 = li.inflate(R.layout.rankmain, null);
  view11 = li.inflate(R.layout.rankmain, null);
    
  

 
  getDataList("0", view1);    //리스트 만들어주는 곳
  view1.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });  
  
  

  getDataList("1", view2);
  view2.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });  

  getDataList("2", view3);
  view3.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  }); 
  
  getDataList("3", view4);
  view4.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  }); 

  getDataList("4", view5);
  view5.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  }); 
  
  getDataList("5", view6);
  view6.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });  
  
  

  getDataList("6", view7);
  view7.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });  

  getDataList("7", view8);
  view8.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  }); 
  
  getDataList("8", view9);
  view9.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  }); 

  getDataList("9", view10);
  view10.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });
  
  getDataList("A", view11);
  view11.findViewById(R.id.ranklistview).setOnTouchListener(new OnTouchListener() {   
   @Override
   public boolean onTouch(View v, MotionEvent event) {
    // TODO Auto-generated method stub
    detector.onTouchEvent(event);
    return false;
   }
  });   
  
  flipper.addView(view1);  
  flipper.addView(view2);  
  flipper.addView(view3);  
  flipper.addView(view4);  
  flipper.addView(view5);
  flipper.addView(view6);
  flipper.addView(view7);  
  flipper.addView(view8);
  flipper.addView(view9);  
  flipper.addView(view10);  
  flipper.addView(view11);
  
  LinearLayout ac = (LinearLayout)act.findViewById(R.id.rank_flipper);
  ac.addView(flipper);
 }

 

 

 

 

 

 class MyGestureDetector extends SimpleOnGestureListener {
     @Override
     public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {

      if(Math.abs(velocityX) > Math.abs(velocityY))
   {
       //int count = flipper.getDisplayedChild();
       if(velocityX > 0)
    {
     flipper.setInAnimation(AnimationUtils.loadAnimation(act.getApplicationContext(), R.anim.push_right_in));
     flipper.setOutAnimation(AnimationUtils.loadAnimation(act.getApplicationContext(), R.anim.push_right_out));
     flipper.showPrevious();  
    }
    else if(velocityX < 0)
    {
     flipper.setInAnimation(AnimationUtils.loadAnimation(act.getApplicationContext(), R.anim.push_left_in));
     flipper.setOutAnimation(AnimationUtils.loadAnimation(act.getApplicationContext(), R.anim.push_left_out));
     flipper.showNext();
    }   
    return true;
   }
         return false;
     }

 }

 

 

 

로그켓 내용

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

10-04 19:10:38.041: INFO/InputReader(2695): dispatchTouch::touch event's action is 0
10-04 19:10:38.041: INFO/InputDispatcher(2695): Delivering touch to current input target: action: 0, channel '40abd308 com.albamon.AMAS/com.albamon.AMAS.AMAS (server)'
10-04 19:10:38.150: INFO/InputReader(2695): dispatchTouch::touch event's action is 1
10-04 19:10:38.150: INFO/InputDispatcher(2695): Delivering touch to current input target: action: 1, channel '40abd308 com.albamon.AMAS/com.albamon.AMAS.AMAS (server)'
10-04 19:10:38.615: DEBUG/dalvikvm(8405): GC_CONCURRENT freed 5239K, 38% free 25656K/40903K, external 8160K/10190K, paused 1ms+7ms
10-04 19:10:38.975: DEBUG/dalvikvm(29539): GC_EXPLICIT freed 2K, 50% free 3394K/6727K, external 0K/0K, paused 290ms
10-04 19:10:39.195: DEBUG/dalvikvm(8405): GC_CONCURRENT freed 672K, 34% free 27031K/40903K, external 7710K/9628K, paused 1ms+7ms
10-04 19:10:39.765: DEBUG/dalvikvm(8405): GC_CONCURRENT freed 681K, 31% free 28397K/40903K, external 7485K/9347K, paused 2ms+7ms
10-04 19:10:40.345: DEBUG/dalvikvm(8405): GC_CONCURRENT freed 679K, 28% free 29766K/40903K, external 7372K/9207K, paused 1ms+7ms
10-04 19:10:43.790: DEBUG/dalvikvm(3791): GC_EXPLICIT freed 6K, 50% free 3448K/6855K, external 0K/512K, paused 96ms
10-04 19:10:43.850: DEBUG/BatteryService(2695): update start
10-04 19:10:43.850: DEBUG/BatteryService(2695): CHARGER :: mBatteryStatus = 5
10-04 19:10:43.850: DEBUG/BatteryService(2695): updateBattery level:100 scale:100 status:5 health:2 present:true voltage: 4191 temperature: 240 technology: Li-ion AC powered:false USB powered:true icon:17302209