Was ich tun möchte, ist den Hintergrund horizontal verschieben und haben es unendlich wiederholen.Android verschieben Hintergrund kontinuierlich mit Animation
Ich versuchte mit einer ImageSwitcher
mit Animation, um diesen Effekt zu erzielen, konnte aber nicht richtig funktionieren. Dies ist der Code, den ich so farl haben
public class MainActivity extends AppCompatActivity implements ViewSwitcher.ViewFactory {
private Animation animSlide;
private ImageSwitcher image;
private ImageView imagePop;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageSwitcher) findViewById(R.id.image_switcher);
image.setFactory(this);
image.setImageResource(R.drawable.zc06);
Animation in = AnimationUtils.loadAnimation(this, android.R.anim.slide_in_left);
in.setDuration(10000);
Animation out = AnimationUtils.loadAnimation(this, android.R.anim.slide_out_right);
out.setDuration(10000);
image.setInAnimation(in);
image.setOutAnimation(out);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
image.setImageResource(R.drawable.zc06);
}
});
}
}, 0, 10000);
Animation mZoomInAnimation = AnimationUtils.loadAnimation(this, R.anim.zoom_in);
Animation mZoomOutAnimation = AnimationUtils.loadAnimation(this, R.anim.zoom_out);
imagePop.startAnimation(mZoomInAnimation);
imagePop.startAnimation(mZoomOutAnimation);
}
@Override
public View makeView() {
ImageView myView = new ImageView(getApplicationContext());
return myView;
}
}
Warum verwenden Sie Ansichtsanimationen? Sie sollten sie wirklich nicht mehr verwenden ... Verwenden Sie stattdessen die neue Animations-API. Wie auch immer, Sie können einfach eine solche Animation erstellen, indem Sie zwei ImageViews in Ihrem Layout haben und diese mit einem ValueAnimator übersetzen. Siehe meine Antwort für weitere Informationen. –