я хочу масштабировать растровое изображение на ACTION_MOVE Android - PullRequest
1 голос
/ 24 декабря 2011

Я хочу масштабировать представление по событию касания ACTION_MOVE. when i drag orange square image according to that red ball should be resized. red bal resized from its center point to center of orange square image ooutput of image like this

все растровые изображения в квадратном формате.(точка1 = вверху + влево, точка2 = вверху + вправо, точка3 = внизу + влево, точка4 = внизу + вправо) я получил все четыре очка.когда я перетаскиваю желтый захват поверх растрового изображения, красный шар изменяет размер в соответствии с этим (захват можно перемещать в любом направлении).

мой вопрос: -> как рассчитать расстояние до центральной точки захватаи растровое изображение (влево + верх) point1 и масштабирование в соответствии с растровым изображением.

означает, что если я перетаскиваю растровое изображение из верхнего + левого угла, то оно масштабируется / изменяет размеры только из point1, point2, point4 (перезаписывается нижний + правый угол вего положение).

-> я использую холст для рисования растрового изображения, правильно ли это обрабатывать растровое масштабирование / поворот?

1 Ответ

2 голосов
/ 27 декабря 2011

Вы можете получить координаты x, y для события ACTION_DOWN и координаты x ', y' для ACTION_UP. С помощью двух точек вы можете сделать свои измерения (Евклидово расстояние, например).

gripper.setOnTouchListener(new OnTouchListener(){
    public boolean onTouch(View v, MotionEvent event) {

        if(event.getAction() == android.view.MotionEvent.ACTION_DOWN){
            x1 = event.getX();
            y1 = event.getY();
        }
        else if(event.getAction() == android.view.MotionEvent.ACTION_UP){
            x2 = event.getX();
            y2 = event.getY();
        }               
        return false;
    }           
});

Вы также можете получить левую верхнюю позицию растрового изображения с помощью методов getLeft(), getTop() (но обратите внимание, что эти методы возвращают позицию относительно родительского макета представления).

В методе createBitmap есть параметр Matrix, который позволит вам изменить размер вашего растрового изображения и сохранить его в нужном разрешении. Посмотрите, как здесь (кстати, это отличный учебник). Вы, наверное, уже знаете, как это сделать, но я все равно не вижу проблем в том, чтобы поделиться им = P.

Надеюсь, это поможет

...