0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 6
1

мультитач зум

25.06.2013, 22:31. Показов 2018. Ответов 3
Метки нет (Все метки)

накидал тут мультитач зум, но не могу разобраться, как заставить изображение в ImageView не вылазить за пределы видимости пользователя
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
.setOnTouchListener(new View.OnTouchListener() {
 
            private String TAG="lal";
 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
 
                ImageView view = (ImageView) v;
                System.out.println("matrix=" + savedMatrix.toString());//хз нахуя эта строка
                switch (event.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:
 
                    savedMatrix.set(matrix);
                    startPoint.set(event.getX(), event.getY());
                    mode = DRAG;
                    break;
 
                case MotionEvent.ACTION_POINTER_DOWN:
//тут короч если палец нажал на моник
                    oldDist = spacing(event);
 
                    if (oldDist > 10f) {
                        savedMatrix.set(matrix);
                        midPoint(midPoint, event);
                        mode = ZOOM;
                    }
                    break;
 
                case MotionEvent.ACTION_UP:
 
                case MotionEvent.ACTION_POINTER_UP:
//а тут короч палец вверх типо поднялся
                    mode = NONE;
                    break;
 
                case MotionEvent.ACTION_MOVE:
//а тут кароч движуха пальцем туда сюда лал
                    
                    Drawable img=view.getDrawable();
                    
                    Log.w(TAG,""+img.getMinimumHeight() +" "+ img.getMinimumWidth() );
 
                    
                    
                    
                    if (mode == DRAG) {
                        matrix.set(savedMatrix);
                        matrix.postTranslate(event.getX() - startPoint.x,
                                event.getY() - startPoint.y);
                    }
                    else
                    if (mode == ZOOM) {
                        float newDist = spacing(event);
                        if (newDist > 10f) {
                            matrix.set(savedMatrix);
                            float scale = newDist / oldDist;
                            matrix.postScale(scale, scale, midPoint.x, midPoint.y);
                        }
                    }
                    break;
 
                }
                view.setImageMatrix(matrix);
 
                return true;
            }
 
            @SuppressLint("FloatMath")
            private float spacing(MotionEvent event) {
                float x = event.getX(0) - event.getX(1);
                float y = event.getY(0) - event.getY(1);
                return FloatMath.sqrt(x * x + y * y);
            }
 
            private void midPoint(PointF point, MotionEvent event) {
                float x = event.getX(0) + event.getX(1);
                float y = event.getY(0) + event.getY(1);
                point.set(x / 2, y / 2);
            }
        });
Добавлено через 59 секунд
помогите разобраться пожалуйста*
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.06.2013, 22:31
Ответы с готовыми решениями:

Маштабирование мультитач
Здравствуйте! Хотел спросить имеется фотография которая увеличивается с центра экрана! ...

Отключить мультитач
Здравствуйте. Как сделать так чтобы не обрабатывались касания если их больше одного? Тоесть есть 10...

Мультитач на всех версиях Android
Здравствуйте. Как мне известно мультитач появился начиная с Android 2.0. я хочу чтобы мое...

Каким образом мультитач определяет второе и последующее касание?
Уважаемы форумчане, есть какое то объяснение по такому вопросу? Каким образом мультитачь...

3
105 / 105 / 1
Регистрация: 09.04.2012
Сообщений: 655
25.06.2013, 23:37 2
http://stackoverflow.com/quest... ch-zooming
0
0 / 0 / 0
Регистрация: 25.06.2013
Сообщений: 6
26.06.2013, 01:46  [ТС] 3
а разве там не такая же проблема?

Добавлено через 1 час 59 минут
м, как я понял Вы имели ввиду второй пример в ссылке, но там всё плачевно очень ввиду того, что работа происходит с новосозданным View, а мне нужно работать именно с ImageView
0
7 / 7 / 0
Регистрация: 30.06.2013
Сообщений: 23
03.07.2013, 21:08 4
предлагаю просто не париться и взять вот эту библиотеку
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.07.2013, 21:08
Помогаю со студенческими работами здесь

Зум страницы в webview
Есть простое приложение состоящее из webview, и возникает такая проблема, при попытке изменения...

Как реализовать зум для картинки?
Подскажите как сделать так, что бы можно было приблизить картинку в приложении, нажатием на нее?

Как узнать максимально возможный зум Google Maps?
Уважаемые, подскажите в чем проблема ? Добавил карты гугла, в эмуляторе запускаю при очень большом...

Зум изображения, Зум колесом мышки
Всем доброго времени суток. Я создал карту 10х20 кусков размером 600х1000 (всего 100 кусков) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru