Autore Topic: Dimensione e formato immagini  (Letto 1135 volte)

Offline gelko

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s2
  • Sistema operativo:
    Win7
Dimensione e formato immagini
« il: 09 Aprile 2014, 13:21:41 CEST »
0
Salve a tutti,
questo è certamente un argomento già molto dibattuto ma, pur cercando, non ho ancora risolto i miei dubbi..
Nella mia app ho un linearLayout verticale che contiene diverse imageView tipo:
Codice (XML): [Seleziona]
<ImageView
           android:layout_width="fill_parent"
           android:layout_height="100dp"
           android:src="@drawable/img1"
           android:scaleType="centerCrop" />

In questo modo riesco ad ottenere delle immagini che riempiono l'intera riga, senza alterarne l'aspect ratio. Vorrei pero' ottimizzare l'uso delle risorse (per ora, uso delle img abbastanza grandi inserite sotto res/drawable):
- di che dimensioni (in px) e in che proporzione dovrei realizzare le singole immagini (usando le varie cartelle drawable-*dpi) in modo che si vedano bene su tutti i dispositivi e con in entrambe le orientations??
- Conoscete un tool che mi eviti di farlo a mano (questo mi crea solo img quadrate e max 200dp)
- Che formato consigliate? (anche ottimizzando le png, mi vengono cmq di dimensione doppia rispetto all'equivalente jpg..)

Offline teskio

  • Moderatore globale
  • Utente normale
  • *****
  • Post: 387
  • Respect: +118
    • Github
    • Google+
    • Mostra profilo
    • Skullab
  • Dispositivo Android:
    Cubot GT99 / SurfTab Ventos 10.1
  • Play Store ID:
    Skullab Software
  • Sistema operativo:
    windows 7 / ubuntu 12.04
Re:Dimensione e formato immagini
« Risposta #1 il: 09 Aprile 2014, 18:58:26 CEST »
0

Offline gelko

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s2
  • Sistema operativo:
    Win7
Re:Dimensione e formato immagini
« Risposta #2 il: 10 Aprile 2014, 00:11:08 CEST »
0
Hai provato questo : http://labs.rampinteractive.co.uk/android_dp_px_calculator/

Non mi serve un convertitore di unità di misura perchè i dp (e i px) dipendono dal singolo dispositivo... Il mio dubbio è su che dimensioni orientarmi per la width...
Ad es. io immagino di dover realizzare una immagine con width almeno quanto l'altezza in px del dispositivo (per poter supportare il landscape) e differente per i 4 drawable-*dpi/

Sul formato immagine invece non ho trovato alcuna indicazione..

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Dimensione e formato immagini
« Risposta #3 il: 10 Aprile 2014, 09:12:33 CEST »
0
Salve a tutti,
questo è certamente un argomento già molto dibattuto ma, pur cercando, non ho ancora risolto i miei dubbi..
Nella mia app ho un linearLayout verticale che contiene diverse imageView tipo:
Codice (XML): [Seleziona]
<ImageView
           android:layout_width="fill_parent"
           android:layout_height="100dp"
           android:src="@drawable/img1"
           android:scaleType="centerCrop" />

In questo modo riesco ad ottenere delle immagini che riempiono l'intera riga, senza alterarne l'aspect ratio.

Come fai a dire che cosi vai a non alterare l'aspect ratio?
Tu hai una dimensione fissa (altezza), mentre l'altra è variabile (larghezza).
E' molto improbabile che non vai ad alterare l'aspect ratio...

Dovresti piuttosto, prendere le dimensioni della immagine, vedere quale è la width effettiva a disposizione ed applicando lo stesso ratio originale calcolarti l'altezza.


Vorrei pero' ottimizzare l'uso delle risorse (per ora, uso delle img abbastanza grandi inserite sotto res/drawable):
- di che dimensioni (in px) e in che proporzione dovrei realizzare le singole immagini (usando le varie cartelle drawable-*dpi) in modo che si vedano bene su tutti i dispositivi e con in entrambe le orientations??

Non esiste una formula magica.
Ma una logica può essere quella di considerare la massima width che vuoi realizzare (sui tablet usi una griglia?)....
Se l'immagine originale è piu piccola delle dimensioni finali, sicuramente avrai una immagine che "sgrana".

- Conoscete un tool che mi eviti di farlo a mano (questo mi crea solo img quadrate e max 200dp)

https://github.com/tizionario/AndroidDrawableFactory

Offline gelko

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s2
  • Sistema operativo:
    Win7
Re:Dimensione e formato immagini
« Risposta #4 il: 10 Aprile 2014, 10:00:36 CEST »
0
Ma creando 4 differenti immagini in drawable-*dpi, quando l'utente installa la app, android gestisce il download in modo da fargli scaricare solo una delle 4 o le scaricherà tutte e 4 (quindi maggiore occupazione di memoria) ma si trae vantaggio dal fatto di gestire img con dimensioni "vicine" a quelle del dispositivo?

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Dimensione e formato immagini
« Risposta #5 il: 10 Aprile 2014, 10:26:25 CEST »
0
Ma creando 4 differenti immagini in drawable-*dpi, quando l'utente installa la app, android gestisce il download in modo da fargli scaricare solo una delle 4 o le scaricherà tutte e 4 (quindi maggiore occupazione di memoria) ma si trae vantaggio dal fatto di gestire img con dimensioni "vicine" a quelle del dispositivo?

L'apk contiene tutte e 4 ( ?.....ldpi, mdpi, hdpi, xhdpi, xxhdpi).
Alternative possono essere:
- usare la drawable-nodpi
- mettere le immagini in una sola risoluzione in assets
- scaricare le immagini da un server dopo l'installazione.

Offline gelko

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s2
  • Sistema operativo:
    Win7
Re:Dimensione e formato immagini
« Risposta #6 il: 10 Aprile 2014, 10:38:14 CEST »
0
scusami se insisto, ma quindi qual'è il reale vantaggio nel creare 5 immagini anzichè inserire solo quella a risoluzione maggiore?

Citazione
- usare la drawable-nodpi
Ed è praticamente quello che sto già facendo, inserendo l'immagine ad alta risoluzione sotto res/drawable (o c'è qualche differenza?)

Offline GabMarioPower

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 606
  • Respect: +152
    • Github
    • Google+
    • gabrielemariotti
    • GabMarioPower
    • Mostra profilo
  • Play Store ID:
    GAB+MARIO+DEV
  • Sistema operativo:
    Ubuntu 14.04 , Win 10
Re:Dimensione e formato immagini
« Risposta #7 il: 10 Aprile 2014, 15:02:57 CEST »
0
scusami se insisto, ma quindi qual'è il reale vantaggio nel creare 5 immagini anzichè inserire solo quella a risoluzione maggiore?
Ma io non ti ho mai detto di usare 5 immagini.

Ed è praticamente quello che sto già facendo, inserendo l'immagine ad alta risoluzione sotto res/drawable (o c'è qualche differenza?)

Drawable e drawable-nodpi non sono uguali.
Le immagini nella prima sono scalabili, nella seconda no.

Offline gelko

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy s2
  • Sistema operativo:
    Win7
Re:Dimensione e formato immagini
« Risposta #8 il: 10 Aprile 2014, 15:29:59 CEST »
0
Citazione
Ma io non ti ho mai detto di usare 5 immagini.
La domanda era in generale: perchè/in quali casi si dovrebbero usare 5 immagini se non vi sono controindicazioni nell'usarne una, con la risoluzione più alta, inserendola in drawable/  (risparmiando spazio su disco e facendola ridimensionare a runtime)

Citazione
Drawable e drawable-nodpi non sono uguali. Le immagini nella prima sono scalabili, nella seconda no.
ok, ma se io le inserissi in drawable-nodpi le immagini resterebbero molto grandi e non potrei ottenere l'effetto voluto (riempimento della width, con altezza "dipendente dal dispositivo"..)


PS: grazie dell'aiuto..

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Dimensione e formato immagini
« Risposta #9 il: 10 Aprile 2014, 15:59:54 CEST »
+1
La domanda era in generale: perchè/in quali casi si dovrebbero usare 5 immagini se non vi sono controindicazioni nell'usarne una, con la risoluzione più alta, inserendola in drawable/  (risparmiando spazio su disco e facendola ridimensionare a runtime)

PS: grazie dell'aiuto..

E' un discorso di memoria. Se apri su un dispositivo LDPI una drawable che è 1900x1200 e la mostri in una view da 190x120dp, stai prendendo un'immagine grande e pesante e la downscali di parecchio.
Un dispositivo LDPI di solito ha poca ram, quindi stai consumando ram per niente. Hai risparmiato dimensione sull'apk (poca,e che viene scaricata 1 volta sola), per spenderne (tanta e spesso) a runtime.
Ecco perchè
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia