Проверка наличия изображения на экране Android

Добрый день.

Приложение написано Java для Android. Средство автоматизации тестов - Robotium. Имеется следующий фрагмент xml’ки:

<TableRow>
    <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:src="@drawable/icon_security"/>
    <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            style="@style/DesignerTextStyle2"
            android:layout_gravity="center_vertical"
            android:text="@string/welcome_security_calls"/>
</TableRow>

Мне нужно проверять, что на экране присутствует данное изображение ("@drawable/icon_security"), Доступ к ресурсам у меня есть. Из того что я читал в интернете, я понял что нужно осуществить примерно следующее:

  1. Обратиться к нужному изображению (например оно у нас третье на экране);
  2. Сделать побитовое сравнение изображения к которому обратились с нужным изображением ("@drawable/icon_security").

Можете предложить пример побитового сравнения изображений?

Image recognition или проверить что елемент есть на екране ?

Как я понял проверить наличие элемента “@drawable/icon_security” на экране можно только средствами Java и только проведя попиксельное сравнение. Но, я не понимаю:

  • кого с кем правильно сравнивать? У меня есть ссылка на картинку “@drawable/icon_security” в xml’е и есть эта картинка на экране, которая, ясное дело, берется из этой самой ссылки. Мне для сравнения необходимо картинку скопировать в отдельное место, и сравнить с этой?
  • как сделать это самое попиксельное сравнение?

извините, но для разних расрешений екрана рисунок может менять размер и такое тестирование к чертям… я что то не понимаю профита етого теста… Разве что привести 2 рисунка в байт масиви и сравнить. Но если рисунок на екране указивает на тот же что и в xml - то витащить его кроме как по ссилке не получиться, итого ви сравние expected result with expected result.

1 лайк