Я хочу использовать ImageViewZoom с универсальным загрузчиком изображений в ImagePagerActivity.
Я могу увеличить изображение, проведите пальцем к следующему изображению. Но я сталкиваюсь с проблемой, когда изображение находится в положении увеличения.
Если изображение увеличено, и я нахожусь в центре, если я хочу увидеть правую часть того же изображения и провести пальцем влево, он перейдет к следующему изображению. Пожалуйста, помогите мне в этом.
вот мой XML-код:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="1dip" >
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:layout_weight="1"
android:id="@+id/image"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter" />
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</FrameLayout>
РЕДАКТИРОВАТЬ:
Спасибо, NOSTRA, теперь я могу управлять масштабированием и перемещением с помощью приведенного ниже кода. Но проблема с мультитач-зумом. Я не могу увеличивать изображение двумя пальцами.
Вот мой предыдущий код (отлично работает двумя пальцами):
public class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale( ScaleGestureDetector detector ) {
Log.d( LOG_TAG, "onScale" );
float span = detector.getCurrentSpan() - detector.getPreviousSpan();
float targetScale = mCurrentScaleFactor * detector.getScaleFactor();
if ( mScaleEnabled ) {
targetScale = Math.min( getMaxZoom(), Math.max( targetScale, getMinZoom()-0.1f ) );
zoomTo( targetScale, detector.getFocusX(), detector.getFocusY() );
mCurrentScaleFactor = Math.min( getMaxZoom(), Math.max( targetScale, getMinZoom()-1.0f ) );
mDoubleTapDirection = 1;
invalidate();
return true;
}
return false;
}
}
А вот и Модифицированный:
public class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScaleBegin(ScaleGestureDetector detector) {
externalScaleListener.onScaleBegin();
return super.onScaleBegin(detector);
}
@Override
public void onScaleEnd(ScaleGestureDetector detector) {
externalScaleListener.onScaleEnd(mCurrentScaleFactor);
}
}
mCurrentScaleFactor = scale;
? Я не могу найти это в ImageviewTouch? эта переменная-член в суперклассе? - person sam_k   schedule 26.04.2013