Vous pouvez simuler un zoom avant et arrière par la mise à l'échelle de la racine de l'activité de la vue. Voici quelques starter code:
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;
}
}
});
Remarque, l'activité de zoom sur un seul clique plutôt que de zoomer sur appuyez deux fois sur. Aussi, vous voudrez probablement pour animer le zoom. Rechercher la Propriété de l'Animation pour les détails de la façon d'accomplir ceci.
[MODIFIER]
Pour les anciennes API niveaux, vous pouvez utiliser ScaleAnimation. Vous pouvez également définir la durée de l'animation. Toutefois, un bémol de taille, c'est qu'il ne modifie que l'apparence de la vue, mais la vue 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;