Problem:
Il est facile de zoomer sur les images et les vues Web. Mais je veux faire un zoom sur toute une activité. Comment puis-je faire ceci?
Here, I provide wire-frame:
De cela, vous pouvez comprendre ce que je veux faire.
Request
Si vous avez une solution à cela, partagez-la.
Je vous remercie.
Vous pouvez simuler le zoom avant et arrière en mettant à l'échelle la vue de l'activité racine. Voici un code de démarrage:
View v = findViewById(Android.R.id.content); // get reference to root activity view
v.setOnClickListener(new OnClickListener() {
float zoomFactor = 1.5f;
boolean zoomedOut = false;
@Override
public void onClick(View v) {
if(zoomedOut) {
// now zoom in
v.setScaleX(1);
v.setScaleY(1);
zoomedOut = false;
}
else {
v.setScaleX(zoomFactor);
v.setScaleY(zoomFactor);
zoomedOut = true;
}
}
});
Notez que l’activité zoomera sur des clics simples au lieu de zoomer lorsque vous appuyez deux fois. En outre, vous souhaiterez probablement animer le zoom. Recherchez Property Animation pour plus de détails sur la manière de procéder.
[EDIT] Pour les anciens niveaux d'API, vous pouvez utiliser ScaleAnimation. Vous pouvez également définir la durée de l'animation. Cependant, un inconvénient majeur est qu'il modifie uniquement l'aspect de la vue, mais que la vue réelle ne change pas.
if(zoomedOut) { // zoom in
ScaleAnimation anim = new ScaleAnimation(1f, 1.5f, 1f, 1.5f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(500);
anim.setFillAfter(true);
v.startAnimation(anim);
zoomedOut = false;
}
else {
ScaleAnimation anim = new ScaleAnimation(1.5f, 1f, 1.5f, 1f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
anim.setDuration(500);
anim.setFillAfter(true);
v.startAnimation(anim);
zoomedOut = true;
Vous pouvez utiliser setScaleX
et setScaleY
pour zoomer sur la vue d'activité complète.
Ensuite, vous devez définir le point pivot avec setPivotX
et setPivotY
.
Les bons exemples avec des détails pour l’ensemble de l’activité zoom avec multitouch:
1) MultiTouch pour toute l'activité.
2) Zoom voir complètement.