Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 92
#1

На счет ImageView - Android

28.08.2015, 12:20. Просмотров 262. Ответов 8
Метки нет (Все метки)

Ребят, очень важный вопрос: Предложим у меня есть две картинки у них есть свои ID, как написать проверку - "Есть ли выше одной картинки другая картинка", т.е если есть выше одной картинки картинка с определенным id то выполняться действие, буду очень благодарен за помощь, думаю код будет сложный.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2015, 12:20     На счет ImageView
Посмотрите здесь:

Массив из ImageView Android
Координаты imageView Android
Android Квадратный ImageView
Снова ImageView Android
Использование ImageView Android
Кастомный ImageView Android
Сохранение ImageView Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
2195 / 1809 / 562
Регистрация: 12.05.2014
Сообщений: 6,445
Завершенные тесты: 1
28.08.2015, 12:26     На счет ImageView #2
что значит "выше"?
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 92
28.08.2015, 12:34  [ТС]     На счет ImageView #3
Выше, т.е если картинка будет выше стоять этой картинки, т.е
■ - Картинка 1
■ - Картинка 2
△ - Указатель вверх

Вот как на экране:





Если под картинкой 1 есть картинка 2 (с нужным id)
Паблито
28.08.2015, 12:43
  #4

Не по теме:

мой ответ - не лучший, так что сними отметку

ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 92
28.08.2015, 12:46  [ТС]     На счет ImageView #5
Поможешь?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
28.08.2015, 12:50     На счет ImageView #6
Цитата Сообщение от Паблито Посмотреть сообщение
что значит "выше"?
Что значит ID картинки?
Паблито
2195 / 1809 / 562
Регистрация: 12.05.2014
Сообщений: 6,445
Завершенные тесты: 1
28.08.2015, 12:51     На счет ImageView #7
у любого View есть метод getLocaationInWindow
Java
1
2
        int[] coord = new int[2];
        view.getLocationInWindow(coord);
после этого в coord[0] будет X координата вьюшки, а coord[1] - Y координата
размеры вьюшки можно запросить так
Java
1
2
int h = view.getHeight();
int w = view.getWidth();
так же можно узнать координаты и размер второй вьюшки

дальше геометрия, сам допишешь

Не по теме:

"выше" можно было трактовать минимум в двух вариантах

ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 92
28.08.2015, 13:42  [ТС]     На счет ImageView #8
Вообще не понял как сделать :/

Добавлено через 41 минуту
А вы бы не могли написать полный код пожалуйста, буду очень благодарен, я только учусь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2015, 13:53     На счет ImageView
Еще ссылки по теме:

Сохранить ImageView Android
Баг с imageView Android
Android Анимация ImageView
ImageView вращение Android
Android ImageView и анимация

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

Или воспользуйтесь поиском по форуму:
Spelcrawler
525 / 495 / 111
Регистрация: 12.03.2014
Сообщений: 1,647
Завершенные тесты: 1
28.08.2015, 13:53     На счет ImageView #9
Можно расширить класс 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
public class MyImageView extends ImageView {
 
    public MyImageView(Context context) {
        super(context);
    }
 
    public MyImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
 
    public MyImageView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
 
    public boolean isHigherThan(View view){
        int[] thisLocation = new int[2];
        int[] viewLocation = new int[2];
        getLocationOnScreen(thisLocation);
        view.getLocationOnScreen(viewLocation);
 
        return thisLocation[1] > viewLocation[1];
    }
    
}
Потом вместо
Java
1
ImageView img = ...;
Нужно будет делать так:
Java
1
MyImageView img = ...;
Ну и использовать потом
Java
1
img.isHigherThan(view);//view - любая вьюшка, вернется true, если img выше view.

Или просто послать в метод:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public int getHigherView(List<View> viewList){
        int higherPoint = 0;
        int higherView = 0;
 
        for(int i = 0; i < viewList.size(); i++){
            int[] location = new int[2];
            viewList.get(i).getLocationOnScreen(location);
 
            if(location[1] > higherPoint){
                higherPoint = location[1];
                higherView = i;
            }
        }
 
        return higherView;
    }
список любых вьюшек. Вернет порядковый номер вьюшки, которая выше остальных.
Yandex
Объявления
28.08.2015, 13:53     На счет ImageView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru