Animieren der Höhe einen Blick android
Hallo, ich bin versucht zu animieren, die Höhe einer Ansicht in android sagen alle 5 Sekunden :-
- Höhe geht von 0 bis 5
- Höhe geht von 5 bis 10
- Höhe geht, von 10 auf 3 usw.
Ich bin mit dem folgenden code :-
public class ShowAnimation extends Animation{
float finalHeight;
View imageview;
public ShowAnimation(View view,float deltaheight){
this.imageview=view;
this.finalHeight=deltaheight;
}
protected void applyTransformation(float interpolatedtime,Transformation t){
imageview.getLayoutParams().height=(int)(finalHeight*interpolatedtime);
imageview.requestLayout();
}
@Override
public void initialize(int width, int height, int parentWidth,
int parentHeight) {
super.initialize(width, height, parentWidth, parentHeight);
}
@Override
public boolean willChangeBounds() {
return true;
}
}
und initialisieren Sie es wie diese:-
Animation anidelta = new ShowAnimation(delta, deltaheight);
anidelta.setDuration(500/* animation time */);
delta.startAnimation(anidelta);
Aber mit diesem bekomme ich die folgenden:-
- Höhe geht von 0 bis 5
- Höhe geht von 0 bis 10
- Höhe geht von 0 bis 3
ich soll die Höhe zu sein, animiert von Ihrer früheren Höhe, anstatt von 0 everytime.
Kann mir bitte jemand helfen hier
Edit1:-
Ich habe diese
Animation anidelta = new ShowAnimation(delta, deltaheight);
anidelta.setDuration(500/* animation time */);
anidelta.setFillAfter(true);
delta.startAnimation(anidelta);
Aber es immer noch animiert von 0 bis zu der newheight.
- set animation.setFillAfter(true); sollte das problem lösen.
- Habe ich gemacht aber es funktioniert nicht. Bitte siehe mein edit
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, animation festlegen. Ich bin mir nicht sicher, ob dies ist, was Sie wollen.
Animation 1 für : die Höhe geht von 0 bis 5
Animation 2 für : Höhe geht von 0 bis 10
Animation 3 : die Höhe geht von 0 bis 3
Ok, das ist also wie habe ich endlich gelöst:-
Ich weiß, dieser post hat nicht gewesen aktiv seit über einem Jahr, aber ich werde posten, was ich denke, ist der einfachste Weg, um zu animieren Ansicht ist die Höhe, die sowieso.
Statt zu deklarieren, Animation Klasse, Sie könnte verwenden Blick.setScaleY API verfügbar ab API-level 11.
Anhand dieser können Sie angeben, anzeigen, skalieren im Bereich von 0-1 (0 bedeutet keine Höhe und 1 bedeutet original Höhe) in der gewünschten zweiten.
In XML gesetzt, Ihre Ansicht ist die Höhe auf die maximale Höhe, dann beim Befüllen Sie die Ansicht (z.B. in Activity#onCreate () - oder-Fragment#onViewCreated()) Sie können
Dann nach 5 Sekunden können Sie festlegen,
Dadurch wird das skalieren der Ansicht der Höhe sofort. Wenn Sie möchten, skalieren Sie die Ansicht mit Animationen, können Sie zum Beispiel etwas wie das hier tun:
Ich hoffe, es hilft.
Müssen Sie eine zusätzliche flag zu sagen, Ihre
applyTransformation
Methode, ob Sie möchten, zu erhöhen oder verringern Sie die Ansicht Höhe.Fügen Sie ein flag, das den Konstruktor und speichern Sie diese Flagge als Instanz-variable, und verwenden Sie dieses flag, um zu entscheiden, ob zu erhöhen oder verringern Sie die anzeigen Höhe: