2015-12-24 4 views
6

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

<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.

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

+0

Этот планшет Asus предназначен для наказания людей. Это не первая проблема. Говоря это, можете ли вы отправить код, который переключает видимость «mouse_hole»? –

+0

Насколько велика вышка mouse_hole? – scana

+0

Re: Scana Фактический размер - 1920x1200, но я попытался преобразовать его в растровое (чтобы сохранить память) и масштабировать его до 1280x800, и он по-прежнему не отображается. –

ответ

0

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

вытяжки-ИПЧР

вытяжки-ldpi

вытяжка-MDPI

вытяжки-xhdpi

вытяжки-xxhdpi

drawable-xxxhdpi

0

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

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