2015-07-28 2 views
1

Мне интересно, как сделать что-то вроде увеличения в холсте приложения Snapseed android.Canvas pinch zoom like Snapseed android app

Является ли это ImageView с масштабированием, или это пользовательский вид и как это сделать?

ответ

2

Я не знаю, как это происходит. Я работал над приложением, где вы можете загружать изображение на холст и применять масштабирование и панорамирование на этом изображении. Расширяя ScaleGestureDetector.SimpleOnScaleGestureListener Класс в вашем представлении или пользовательский просмотр и переопределение метода onScale(). Вы можете установить масштабный коэффициент внутри этого метода.

private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { 

    @Override 

    public boolean onScale(ScaleGestureDetector detector) { 

     scaleFactor *= detector.getScaleFactor(); 

     scaleFactor = Math.max(MIN_ZOOM, Math.min(scaleFactor, MAX_ZOOM)); 

     return true; 

    } 

Надеется, что это помогает :)

+0

Я начинающий программисту, этот код не так гладко и профессионально, как я хотел бы получить. Есть ли все равно, чтобы сделать его гладким? – Sayed