2017-10-26 4 views
0

Ich habe Draw View. Es ist ein Ort, an dem der Benutzer eine Unterschrift machen kann. Wenn der Benutzer auf die Schaltfläche klicke, möchte ich eine Art Scanner-Effekt erzeugen - der Hintergrund der Zeichnungsansicht ändert sich von links nach rechts ("Fortschritt" des Scannens). Im Moment habe ich eine Animation erstellt, aber sie ändert den ganzen Hintergrund auf einmal. Ich muss es linear machen - von links nach rechts. Irgendeine Idee, wie man diesen Effekt erzielt? :)Android Animate Ansicht von links nach rechts

Meine Ansicht:

<com.rm.freedrawview.FreeDrawView 
     android:id="@+id/draw_layout" 
     android:layout_width="400dp" 
     android:layout_height="200dp" 
     android:background="@drawable/border_background" 
     app:paintAlpha="255" 
     app:paintColor="@color/black" 
     app:paintWidth="2dp" 
     app:resizeBehaviour="crop" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="400dp"/> 

Und das ist meine Animation:

@OnClick(R.id.next_button) 
    public void openActivity(){ 

     int colorFrom = getResources().getColor(R.color.red); 
     int colorTo = getResources().getColor(R.color.black); 
     ValueAnimator colorAnimation = ValueAnimator.ofObject(new ArgbEvaluator(), colorFrom, colorTo); 
     colorAnimation.setDuration(1000); 
     colorAnimation.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 

      @Override 
      public void onAnimationUpdate(ValueAnimator animator) { 
       mDraw.setBackgroundColor((int) animator.getAnimatedValue()); 

      } 

     }); 
     colorAnimation.start(); 
    } 
+1

können Sie Eigenschaftsanimation oder übersetzen Animation verwenden. –

+0

Es ist Property Animator. Nur ich weiß nicht, wie man linearen Effekt – Bartos

Antwort

2

Sie können diese offcial Verbindung überprüfen und animieren Sie https://developer.android.com/guide/topics/graphics/prop-animation.html

Hier sehen ist das Beispiel Code zum Verschieben einer Textansicht in X-Achse 100 Punkte. Sie können Ihre eigene Ansicht so animieren.

ObjectAnimator animation = ObjectAnimator.ofFloat(textView, "translationX", 100f); 
animation.setDuration(1000); 
animation.start(); 

Oder können Sie diesen Beitrag überprüfen Change multiple properties with single ObjectAnimator?

Und hier ist das komplette Tutorial, wie dies zu tun. http://androideverywhere.in/translate-scale-rotate-alpha-animations/

+0

noch versuchen versucht. Bis jetzt nicht gelingen – Bartos

+0

Ich denke nicht, dass Sie Effekt erzielen können, wie ich mit diesem benötigen. – Bartos

+0

können Sie sich wieder zurück bewegen, wenn Sie vorwärts gehen, und Sie können diesen Effekt auf diese Weise erreichen. –

Verwandte Themen