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

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

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

Максимальный width, height объекта view - Программирование Android

09.02.2016, 14:33. Просмотров 474. Ответов 26
Метки нет (Все метки)

Здравствуйте, уже все перепробовал, нужно: каким-нибудь способом определить, есть ли картинка на картинке, т.е находиться ли одна картинка на второй, хочу попробовать нахождении по координатам картинки, но нужно узнать ее максимальный width и height
Как я пробовал:
Java
1
2
3
4
5
6
7
ImageView ll = (ImageView)findViewById(R.id.IDla);
TextView text = (TextView)findViewById(R.id.IDtext);
 
H = ll.getHeight();
W = ll.getWidth();
 
text.setText(""+ Math.max(H, W) + " | "+Math.min(H, W));
Вывод 0 | 0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.02.2016, 14:33     Максимальный width, height объекта view
Посмотрите здесь:

Получить width и height картинки из ресурса - Программирование Android
Добрый день! Что то я уже запарился искать решение. А задача на вид элементарная: Есть cat - это id картинки из ресурса. Требуется...

RecyclerView фиксированый height - Программирование Android
Мне кажется много кто встречался с данной проблемой. у меня есть корзина, в ней RecyclerView с фиксированой высотой. (что бы там 3...

Background меняет height компонента - Программирование Android
Привет. У меня есть toolbar (из android.support.v7.widget.Toolbar). У него android:layout_height="wrap_content" Я ставлю на фон...

Android slide view - Программирование Android
Всем привет, недавно программирую под андройд, хочу сделать слайд менюшку в приложении. Использую библиотеку SlidingMenu, менюшку готовлю...

Программное добавление View - Программирование Android
Не могу разобраться: нужно программно прилепить н-ное количество вьюх. Делаю так: Dialog dialog = new Dialog(pd.getContext()); ...

Не отлавливается View.OnClickListener - Программирование Android
Написал следующий код, список появляется с элементами все работает. а вот на карточку внутри списка нажатие не хочет отрабатывать. еще...

Работа с классом View - Программирование Android
Здравствуйте форумчане, надеюсь все знают этот элемент View. Так вот не знаю как вернуться в начало(( Вроде и на гугле посмотрел и сам...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.02.2016, 15:58     Максимальный width, height объекта view #16
ProGraf, вы плохо читаете.
Вам же сказано, что надо сначала перейти к родительской группе. Вы разметку покажите для начала.
А то так получается, что im.findViewById(R.id.IDbt) - это как будто внутри изображения есть текст. Такое невозможно. Надо сначала перейти к лэйауту, содержащему оба компонента. Наверное, у вас какой-нибудь RelativeLayout. Или просто наберите что-то типа ViewGroup layout = im.getParent(); Затем уже можете адресоваться к элементам: layout.findViewById(R.id.IDbt); Но судя по тому, что я вижу, и это не поможет, т.к. они у вас адресуются прямо: (TextView)findViewById(R.id.IDt).
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
09.02.2016, 15:59  [ТС]     Максимальный width, height объекта view #17
Паблито,
Работа кода должна выглядить так: При нажатии на кнопку смещается картинка, условие: если эта картинка переместилась на кнопку то текст сверху в левом углу меняется на "+".
Xml:
XML
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
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <ImageView
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:src="@android:drawable/ic_delete"
        android:layout_centerHorizontal="true"
        android:id="@+id/IDim"/>
 
    <Button
        android:layout_height="wrap_content"
        android:text="Button"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        android:id="@+id/IDbt"
        android:onClick="tap"/>
 
    <TextView
        android:layout_height="wrap_content"
        android:text="Next?"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:layout_width="wrap_content"
        android:id="@+id/IDt"/>
 
</RelativeLayout>
Код Activity:

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
import android.app.*;
import android.os.*;
import android.view.*;
import android.widget.*;
 
public class MainActivity extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    int cnt = 0;
    
    public void tap(View view){
    ImageView im = (ImageView)findViewById(R.id.IDim);
    Button but = (Button)findViewById(R.id.IDbt);
    TextView text = (TextView)findViewById(R.id.IDt);
    cnt += 5;
    im.setY(cnt);
        if(im.findViewById(R.id.IDbt) != null){
        text.setText("+");
        }
    }
}
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
09.02.2016, 16:03     Максимальный width, height объекта view #18
кошмар какой-то
findViewById ищет наличие элемента в разметке, а не пересечение одного с другим

как брать координаты вьюшек я отписал еще в самом начале
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.02.2016, 16:05     Максимальный width, height объекта view #19
ProGraf, и зачем этот концерт с определением компонентов? Продолжайте адресоваться, как и раньше, через findViewById. Уберите вообще im.findViewById.
Определяйте положение углов изображения. Просто в коде прибавляйте к левому краю изображения его ширину, таким образом получите правую границу изображения. Это всё надо повешать на событие щелчка по кнопке. Затем проверяйте, наехал рисунок на кнопку или нет.
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
09.02.2016, 16:05  [ТС]     Максимальный width, height объекта view #20
CoolMind, извините но я не могу понять ваш способ, я его щас гуглил, но не понимаю.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.02.2016, 16:07     Максимальный width, height объекта view #21
ProGraf, так, забудьте про способы, которые вам указали до показа разметки (в 15:59). Просто по нажатию на кнопку проверяйте правый край рисунка и сравнивайте с левым краем кнопки. Если он больше или равен, то рисуйте плюс.
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
09.02.2016, 16:28  [ТС]     Максимальный width, height объекта view #22
Паблито, в этом и было проблема, я думал ваш способ сработает и мне не придется работать с координатами, но увы приходиться, я не могу понять как сделать чтобы была проверка по координатам всего изображение, а не верхнего левого угла, т.е мне нужно сделать полную проверку изображение если ход один пикс-координат задевает кнопку то действие.

Добавлено через 2 минуты
CoolMind, так у меня этого не получается, я уже все перепробовал, четкой информации,что картинка задела другой объект с любого радиуса "Низа, верха, справа, лева" не выходит.

Добавлено через 10 минут
CoolMind, так вы поможете?
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.02.2016, 16:31     Максимальный width, height объекта view #23
ProGraf, вы сделали обработчик onClick у кнопки?
Там прописали вычисление углов картинки?
Предположим, в момент нажатия уже известны ширина и высота (вычислили их в начале программы). Дальше просто прибавляете im.left + W, im.top + H и получаете координаты правого нижнего угла картинки (вместо left найдите нужный метод). Затем сравниваете с углами кнопки. Это одна из простых задач на пересечение прямоугольников.
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
09.02.2016, 16:34  [ТС]     Максимальный width, height объекта view #24
CoolMind,
Java
1
2
3
4
5
6
7
8
for(x = 0; x < im.getWidth(); x++)
    for(y = 0; y < im.getHeight(); y++)
    for(xx = 0; xx < but.getWidth(); xx++)
    for(yy = 0; yy < but.getHeight(); yy++)
    if((im.getX()+x)==(but.getX()+xx) && (im.getY()+y)==(but.getZ()+yy))
    {
    text.setText("+");
    }
Я бы хотел через for чтобы узнать каждый пиксель картинки и перечислить его, но все это привозит к вылету
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
09.02.2016, 16:41     Максимальный width, height объекта view #25
ProGraf, ого, это что-то новое. Вы просто нарисуйте на бумаге несколько вариантов расположения прямоугольников. Рядом, один в другом, с пересечением сторон. Потом определите, что вам нужно. Если нужно, чтобы хотя бы одна сторона была правее любой стороны кнопки, то это вообще просто. Для этого определите абсциссу правой стороны изображения. По-моему, это im.getRight(). Затем сравните с абсциссой левой стороны кнопки. Если первое больше или равно второго, то рисуйте плюс.
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
09.02.2016, 16:43  [ТС]     Максимальный width, height объекта view #26
CoolMind, пробую спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2016, 16:51     Максимальный width, height объекта view
Еще ссылки по теме:

Загрузка View-шек - Программирование Android
Имеется Fragment c ListView, в который загружается тяжелая информация (заполняется 4 ImageView, 4 TextView). Когда в Layout Drawer'e...

Различия View-компонентов - Программирование Android
EditTExt в первой строке добавлен на экран вручную. EditTExt во второй строке добавлен на экран программно. Они различаются по...

list view управление - Программирование Android
у меня есть лист вью на шаблоне одна надпись и три кнопки, вот вопрос как управлять то этими кнопка как обрабатывать (ЗЫ знаю как...

Библиотека View Injector - Программирование Android
Господа android разработчики. Хотел бы представить Вашему вниманию свою маленькую библиотеку для view injection. Честно говоря, надоело...

Отображение View по условиям - Программирование Android
Здравствуйте, вопрос такой, можно ли при разных условиях отображать или не отображать разные view с настройками в activity? Поясню,...


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

Или воспользуйтесь поиском по форуму:
Pablito
2459 / 1904 / 591
Регистрация: 12.05.2014
Сообщений: 6,712
Завершенные тесты: 1
09.02.2016, 16:51     Максимальный width, height объекта view #27
все проще, но ТС вртяли сделает это
Java
1
2
3
4
5
                Rect r1 = new Rect();
                Rect r2 = new Rect();
                view1.getDrawingRect(r1);
                view2.getDrawingRect(r2);
                boolean isIntersect = r1.intersect(r2);
Yandex
Объявления
09.02.2016, 16:51     Максимальный width, height объекта view
Ответ Создать тему
Опции темы

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