2013-08-15 14 views
14

Ho un ImageView che voglio visualizzare corrispondente alla larghezza del dispositivo, mi sono reso conto che in questo modo:ImageView visualizzazione nel layout, ma non sul dispositivo reale

<ImageView 
    android:id="@+id/home_bar_newvault" 
    android:layout_width="wrap_content" 
    android:layout_height="40dp" 
    android:scaleType="centerCrop" 
    android:layout_alignParentBottom="true" 
    android:src="@drawable/home_bar" /> 

Il home_bar è un file immagine PNG con le seguenti dimensioni: 2399x254. Quando scelgo di visualizzare il layout grafico dell'interfaccia utente, visualizza correttamente l'immagine nella parte inferiore dell'attività. Tuttavia, quando avvio l'applicazione sul mio dispositivo non visualizzerà affatto l'Imageview.

+0

Hai impostato la schermata di destinazione e la risoluzione del 'Layout grafico 'come quella del tuo dispositivo reale? – user2652394

+0

Sì, ho provato ogni risoluzione e lo schermo di destinazione e tutti loro visualizzano il ImageView nel Layout grafico. Ho solo un dispositivo fisico per il test vero e proprio, forse un problema relativo al dispositivo? –

+0

[Vedere questa risposta] (https://stackoverflow.com/a/29067760/4084269). Se l'immagine è troppo grande, il logcat mostrerà un messaggio come questo: 'Bitmap troppo grande per essere caricato in una trama (2496x4437, max = 4096x4096)' – Josselin

risposta

10

OK Ho provato a cambiare la risoluzione dell'immagine (tagliandola a metà rendendola 1000x130) e in qualche modo ha risolto il problema. Penso che Android non possa rendere direttamente immagini di grandi dimensioni come questa? Non lo so, se ne sai di più sull'argomento non esitare a rispondere! Ad ogni modo, ridimensionare l'immagine ha funzionato.

+1

Ridimensionamento dell'immagine ha funzionato anche per me. Ho avuto un'immagine di 250x3000px e ho tagliato l'immagine a metà a 125x1500px e è apparso sul dispositivo. – Noah

+1

Oh uomo, questo ha funzionato anche per me. Che bizzarro bug. – Jenny

+0

Questo ha funzionato anche per me. Grazie amico :) – Omid1989

29

Ho avuto lo stesso problema, è visibile solo nella scheda Progettazione per Android Studio 2.2.

Quello che ho fatto per farlo funzionare è quello di cambiare la chiave automatica assegnato (popolata tramite drag/goccia ImageView) app:srcCompat="@drawable/logo"-android:src="@drawable/logo" nella scheda Testo per farlo apparire sia l'emulatore e il dispositivo ad esempio

<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/logo" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:layout_marginTop="75dp" 
    android:id="@+id/logoImageView" 
    android:scaleType="fitXY" 
    android:scaleX="1.5" 
    android:scaleY="1.5" /> 
+0

https://stackoverflow.com/questions/40624554/android-what-is-the-difference-between-appsrccompat-and-androidsrc Invece, puoi facilmente aggiungere il supporto per l'app: srcCompat – Jayz7522

+0

C'è un modo? ottenere AS per smettere di farlo per impostazione predefinita? – eric

1

è possibile utilizzare:

android:background="@drawable/home_bar" 

invece di:

android:src="@drawable/home_bar" 
0

Ho avuto un problema con un telefono Samsung che non visualizzava il mio drawable ma funzionava bene su un altro telefono. L'immagine non era di grandi dimensioni o comunque anormale.

Per risolvere questo problema, ho semplicemente inserito il mio asset immagine in una sottocartella drawable invece di averlo nella cartella principale drawable. E.g da res/drawable a res/drawable-mdpi ha funzionato per me. Se hai un'immagine da utilizzare per tutto ciò che non ha un dpi specifico, inseriscilo in res/drawable-nodpi. Here's un po 'di più sulle cartelle dpi.

Problemi correlati