Невозможно панорамировать и масштабировать изображение на холсте - PullRequest
1 голос
/ 05 октября 2011

Я пытаюсь отобразить изображение с холстом, который позволяет масштабировать и панорамировать, но не дает пользователю панорамировать изображение за пределами экрана. Мне удалось остановить панорамирование, но при увеличении изображения оно останавливается перед краем изображения. Мне нужно иметь возможность перемещаться по краю изображения даже в увеличенном масштабе. Любая помощь будет принята с благодарностью.

Мой код, который отображает изображение, останавливает панорамирование за пределами экрана и увеличивает:

    @Override
    public void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.save();

        if (mPosX < displayWidth - mIcon.getIntrinsicWidth()){
            mPosX = displayWidth - mIcon.getIntrinsicWidth();}
        if (mPosX > 0){
            mPosX = 0; }
        if (mPosY < displayHeight - mIcon.getIntrinsicHeight()){
            mPosY = displayHeight - mIcon.getIntrinsicHeight();}
        if (mPosY > 0){
            mPosY = 0; }

        canvas.translate(mPosX, mPosY);
        canvas.scale(mScaleFactor, mScaleFactor);
        mIcon.draw(canvas);
        canvas.restore();
    }

    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
        @Override
        public boolean onScale(ScaleGestureDetector detector) {
            mScaleFactor *= detector.getScaleFactor();

            // Don't let the object get too small or too large.
            mScaleFactor = Math.max(0.42f, Math.min(mScaleFactor, 5.0f));

            invalidate();
            return true;
        }
    }

1 Ответ

0 голосов
/ 05 октября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...