Ответ 1
Вы можете имитировать масштабирование и масштабирование, масштабируя представление активности корня. Вот код стартера:
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;
}
}
});
Обратите внимание, что активность будет увеличиваться на отдельные клики, а не на увеличение при двойном нажатии. Кроме того, вы, вероятно, хотите оживить масштабирование. Найдите Анимацию свойств, чтобы узнать, как это сделать.
[EDIT] Для более старых уровней API вы можете использовать ScaleAnimation. Вы также можете установить продолжительность анимации. Однако основная оговорка заключается в том, что она только изменяет внешний вид представления, но фактический вид не изменяется.
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;