2015-12-24 1 views
6

ich zur Zeit den folgenden XML-Code für meine benutzerdefinierte Ansicht hat:Image Tapete innerhalb benutzerdefinierter Ansicht zeigt nicht auf einigen Geräten bis

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

Bei einigen Geräten (wie die Samsung Galaxy Tab 4), das Hintergrundbild mouse_hole zeigt gut, während es auf anderen Geräten wie dem Asus Transformer Infinity TF700T überhaupt nicht erscheint. Die Sichtbarkeit von mouse_hole wird programmatisch sichtbar geändert, wenn ich mein Spiel starte. Meine benutzerdefinierte Ansicht erweitert sich auf RelativeLayout.

Könnte jemand wissen, was hier falsch ist?

+0

Dieses Asus-Tablet wurde entwickelt, um Menschen zu bestrafen. Es ist nicht das erste Problem. Sagen Sie das, können Sie Code schreiben, der die Sichtbarkeit des 'mouse_hole's ändert? –

+0

Wie groß ist das mouse_hole Zeichenfeld? – scana

+0

Re: Scana Die tatsächliche Größe ist 1920x1200, aber ich habe versucht, es in eine Bitmap (um Speicher zu sparen) und Skalierung auf 1280x800, und es wird immer noch nicht angezeigt. –

Antwort

0

Ich hatte das ähnliche Problem. Versuchen Sie Ihr Bild mouse_hole in jedem forder für verschiedene Bildschirmgrößen zu setzen:

ziehbar-hdpi

ziehbar-LDPI

ziehbar-MDPI

ziehbar-xhdpi

ziehbar-xxhdpi

Zeichensatz-xxxhdpi

0

Möglicherweise ist das Layout nicht korrekt aktualisiert. Ich würde vorschlagen, den HierarchyViewer zu verwenden, um die Größe und Positionierung der fehlenden Ansicht auf dem Asus Transformer Infinity zu überprüfen. Hier sind die Schritte, die Sie wahrscheinlich die Hierarchie Viewer für immer mit dem Asus zu tun haben, zu arbeiten:

  1. Stellen Sie sicher, Sie debuggen auf dem Asus
  2. Fügen Sie den ViewServer Jar zu Ihrem Projekt.
  3. Fügen Sie vorübergehend die Bibliotheksaufrufe hinzu, um Ihre App für den Hierarchy Viewer verfügbar zu machen. Beispielcode ist seen here
  4. Öffnen Sie den Hierarchy Viewer. In Android-Studio, das Menü Extras> Android Untermenü> Android Device Monitor
  5. Vergewissern Sie sich in der Hierarchieansicht Perspektive
  6. Wählen Sie die App, die Sie laufen (es könnte dauern ein wenig für das Layout zu zeigen) ist
  7. Verwenden Sie den Baumknotenbereich, um die fehlende Ansicht zu finden
  8. Wählen Sie die Ansicht aus, indem Sie auf die Registerkarte Ansichtseigenschaften klicken, um zu überprüfen, ob die gemessene Größe (unter dem Kennzahleigenschaftsabschnitt) für die Breite und Höhe größer ist 0
  9. Stellen Sie sicher, dass die Ansicht in den Grenzen der übergeordneten Ansicht platziert wird, indem Sie den Bereich der Layouteigenschaften (mLeft, mTop, mRight, mBottom) hier betrachten ist ein link an jemanden, der die Layout-Eigenschaften betrachtet (obwohl er ein Leistungsproblem aufspürt).
Verwandte Themen