Подтвердить что ты не робот

Как увеличить всю активность на мультитач?

Problem:

Легко масштабировать изображения и просматривать веб-страницы. Но я хочу увеличить масштаб активности. Как я могу это сделать?

Here, I provide wire-frame:

Wire-Frame-Of-Activity

Из этого вы можете понять, что я хочу делать.

Request

Если у вас есть какое-либо решение, пожалуйста, поделитесь.
Спасибо.

4b9b3361

Ответ 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;

Ответ 2

Вы можете использовать setScaleX и setScaleY для увеличения полного представления активности .

Затем вам нужно установить опорную точку с помощью setPivotX и setPivotY.

Хорошие примеры с подробными сведениями для всего вида деятельности с мультитач:

1) MultiTouch для всей активности.

2) Zooming полностью просмотреть.