0

私はhorizo​​ntalalscrollViewをアニメーションと一緒に使ってスライドショーとして画像セットを移動しています。私は今、スライドショーとして右から左に画像を移動したいAndroidのhorizo​​ntalscrollViewを左から右に移動

public void getScrollMaxAmount(){ 
    int actualWidth = (horizontalOuterLayout.getMeasuredWidth()-512); 
    scrollMax = actualWidth; 
} 

public void startAutoScrolling(){ 
    if (scrollTimer == null) { 
     scrollTimer = new Timer(); 
     final Runnable Timer_Tick = new Runnable() { 
      public void run() { 
       moveScrollView(); 
      } 
     }; 

     if(scrollerSchedule != null){ 
      scrollerSchedule.cancel(); 
      scrollerSchedule = null; 
     } 
     scrollerSchedule = new TimerTask(){ 
      @Override 
      public void run(){ 
       runOnUiThread(Timer_Tick); 
      } 
     }; 

     scrollTimer.schedule(scrollerSchedule, 30, 30); 
    } 
} 

public void moveScrollView(){ 
    scrollPos = (int) (horizontalScrollview.getScrollX() + 1.0); 
    if(scrollPos >= scrollMax){ 
     scrollPos = 0; 
    } 
    horizontalScrollview.scrollTo(scrollPos, 0); 

} 

:私は、次のコードを使用して右から左に画像を移動することができますよ。私は正しい数式/論理を見つけることができません。親切に私を助けてください。 :(タイマーを開始する前に

+0

は、あなたがしたいですか左から右へ画像を移動するには – Vinay

+0

あなたは今直面している問題は何ですか? – Triode

+0

はいスライドショーで画像を左から右に移動したいと思います。上記のコードでは、イメージを右から左に(アニメーションロジックと共に)移動することができます。今、私は左から右へ実装したいと思います。 – JaveDeveloper

答えて

1

、設定:

scrollPos= scrollMax; 

を次にこのmoveScrollView機能を使用します。horizo​​ntalScrollviewコンテンツの幅を計算するための

public void moveScrollView(){ 
    scrollPos = (int) (horizontalScrollview.getScrollX() - 1.0); 
    if(scrollPos <= 0){ 
     scrollPos = scrollMax; 
    } 
    horizontalScrollview.scrollTo(scrollPos, 0); 
} 

を:

protected void onCreate(Bundle savedInstanceState) 
{ 
     ... 

    horizontalScrollview= (HorizontalScrollView) findViewById(R.id.hsv); 
    ViewTreeObserver vto = horizontalScrollview.getViewTreeObserver(); 
    vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
     @Override 
     public void onGlobalLayout() { 
      horizontalScrollview.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
      scrollMax= horizontalScrollview.getChildAt(0).getMeasuredWidth()-getWindowManager().getDefaultDisplay().getWidth(); 

     } 
    });  
} 
+0

こんにちは。返信いただきありがとうございます。画像を左から右に動かすことができます。しかし、最初のオフセットはまだ何とか0に設定されています。画像は左(X軸0まで)に移動し、そこから右に向かって移動を開始する。 :( – JaveDeveloper

+0

あなたの歓迎。だから、私は私が約6イメージを持っている。私は式を変更し – Mbt925

+0

。私は私の解決策を編集しscrollMax計算を追加しました。scrollMaxのためのあなたの計算が間違っていると思います。しかし、幅は画像によって占有幅を超えていますそれは私に空白しばらくの間のスペースと、その後、スライドショーが開始さを与えている。:( – JaveDeveloper

関連する問題