2014-12-07 2 views
1

Я могу панорамировать с моим приложением, но я пытаюсь реализовать масштабирование с двумя пальцами. Я создаю картографическую викторину с большим растровым изображением. Я не нашел простой способ сделать это - любая помощь будет очень признательна. Благодаря! Вот мой код:Пытается реализовать 2-кратный зум

import android.app.Activity; 
import android.os.Bundle; 
import android.view.MotionEvent; 
import android.widget.HorizontalScrollView; 
import android.widget.ScrollView; 

public class MainActivity extends Activity { 

private float mx, my; 
private float curX, curY; 

private ScrollView vScroll; 
private HorizontalScrollView hScroll; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.quiz); 

    vScroll = (ScrollView) findViewById(R.id.vScroll); 
    hScroll = (HorizontalScrollView) findViewById(R.id.hScroll); 



} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    float curX, curY; 

    switch (event.getAction()) { 

     case MotionEvent.ACTION_DOWN: 
      mx = event.getX(); 
      my = event.getY(); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      curX = event.getX(); 
      curY = event.getY(); 
      vScroll.scrollBy((int) (mx - curX), (int) (my - curY)); 
      hScroll.scrollBy((int) (mx - curX), (int) (my - curY)); 
      mx = curX; 
      my = curY; 
      break; 
     case MotionEvent.ACTION_UP: 
      curX = event.getX(); 
      curY = event.getY(); 
      vScroll.scrollBy((int) (mx - curX), (int) (my - curY)); 
      hScroll.scrollBy((int) (mx - curX), (int) (my - curY)); 
      break; 


    } 

    return true; 
} 

} 

ответ

1

Много документации вы можете найти на http://developer.android.com/training/gestures/index.html.

О масштабировании http://developer.android.com/training/gestures/scale.html

Вот именно то, что вам нужно http://developer.android.com/training/gestures/scale.html#scale

+0

Есть ли способ сделать это без холста? – user190494

+0

Я так не думаю. Возможно, лучший способ для вас - найти какой-то проект openviewer с открытым исходным кодом на github. – Dmytro

Смежные вопросы