Обои ImageView внутри пользовательского представления не отображаются на некоторых устройствах

В настоящее время у меня есть следующий код XML для моего пользовательского представления:

<com.pink.jazz.RootView android:id="@+id/rootView" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingStart="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingEnd="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MouseActivity" > <ImageView android:id="@+id/mouse_hole" android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/mouse_hole" android:visibility="gone" /> </com.pink.jazz.RootView> 

На некоторых устройствах (например, Samsung Galaxy Tab 4) изображение с изображением mouse_hole отображается отлично, в то время как оно не появляется вообще на других устройствах, таких как Asus Transformer Infinity TF700T. При запуске игры видимость mouse_hole изменяется на видимую программно. Мой пользовательский вид расширяет RelativeLayout .

Может ли кто-нибудь узнать, что здесь не так?

У меня была аналогичная проблема. Попытайтесь поместить свое изображение mouse_hole в каждый трейдер для разных размеров экрана:

рисуем-ИПЧР

рисуем-ldpi

рисуем-MDPI

рисуем-xhdpi

рисуем-xxhdpi

рисуем-xxxhdpi

Возможно, макет не обновляется должным образом. Я бы предложил использовать HierarchyViewer для проверки размера и расположения отсутствующего представления на Asus Transformer Infinity. Вот шаги, которые вы, вероятно, должны сделать, чтобы заставить Hierarchy Viewer работать с Asus:

  1. Убедитесь, что вы отлаживаете Asus
  2. Добавьте в проект проект ViewServer Jar .
  3. Временно добавьте вызовы библиотеки, чтобы сделать ваше приложение доступным для просмотра иерархии, пример кода можно увидеть здесь
  4. Откройте средство просмотра иерархии. В андроид-студии, которая является меню «Сервис»> Android-подменю> Android-монитор устройства
  5. Убедитесь, что вы находитесь в перспективе просмотра иерархии
  6. Выберите приложение, которое вы используете (для отображения макета может потребоваться немного)
  7. Используйте панель узлов дерева, чтобы найти отсутствующий вид
  8. Выберите вид, щелкнув по нему, воспользуйтесь вкладкой «Просмотр свойств», чтобы убедиться, что измеренный размер (найденный в разделе свойства меры) для ширины и высоты больше 0
  9. Убедитесь, что представление размещено в границах родительского представления, просмотрев раздел свойств макета (mLeft, mTop, mRight, mBottom), вот ссылка на кого-то, кто смотрит на свойства макета (хотя он отслеживает проблему производительности) ,