Autore Topic: Sovrapporre due ImageView,come?  (Letto 2702 volte)

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Sovrapporre due ImageView,come?
« il: 18 Febbraio 2012, 20:05:38 CET »
0
Sto tentando di apprendere un po' di programmazione android,con il java me la cavo abbastanza bene anche se non ho mai avuto a che fare con Immagini e forme disegnate,mi sono fermato alla grafica semplice ovvero layout,bottoni,liste,aree di testo.Attualmente ho caricato due immagini,precisamente due carte da gioco,creando ovviamente 2 oggetti ImageView e aggiungendoli al layout,se ora volessi sovrapporre la metà sinistra della seconda carta (quella visualizzata a destra) sulla metà destra della prima carta (quella visualizzata a sinistra),come dovrei fare? Per farvi capire meglio,intendo fare la stessa cosa visibile osservando il mazzo di carte del gioco hearts di windows,solo con due carte,trovate uno screenshot qui di seguito.
« Ultima modifica: 19 Febbraio 2012, 11:46:20 CET da Alessio_roma™ »
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Sovrapporre due ImageView,come?
« Risposta #1 il: 20 Febbraio 2012, 12:03:55 CET »
0
qualcuno può aiutarmi?
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™

Offline A2PLab

  • Nuovo arrivato
  • *
  • Post: 37
  • [Close The World - txeN ehT nepO]
  • Respect: +1
    • Google+
    • http://it.linkedin.com/in/giuseppemastroeni
    • a2plab
    • a2plab
    • Mostra profilo
    • A2PLab
  • Dispositivo Android:
    HTC Desire, Acer Iconia Tab a500
  • Sistema operativo:
    Ubuntu 11.04
Re:Sovrapporre due ImageView,come?
« Risposta #2 il: 20 Febbraio 2012, 12:09:13 CET »
0
Avevo anche io questo problema perchè volevo creare una ombreggiatura di alcuni blocchi del mio template su quelli dietro, quindi dovevo sovrapporre necessariamente l'immagine (o la shape nel mio caso) del bordo a quello che ci stava sotto.

Nella mia app ho per esempio al centro una mapview e di lato una sidebar, sono riuscito a far si che il bordo della sidebar crei un ombra sulla mappa.

Dopo aver sbattuto un pò anche con il merging layout ho visto che è molto semplice ottenere questo risultato usando i relativelayout, i quali ti permettono  di sistemare le view come vuoi, e poi giochi con gli allineamenti messi a disposizione dal relative e con i margini.
Io sono riuscito ad ottenere una cosa abbastanza modulare e pulita così.
[Close The World - txeN ehT nepO]

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Sovrapporre due ImageView,come?
« Risposta #3 il: 20 Febbraio 2012, 22:20:27 CET »
0
Avevo anche io questo problema perchè volevo creare una ombreggiatura di alcuni blocchi del mio template su quelli dietro, quindi dovevo sovrapporre necessariamente l'immagine (o la shape nel mio caso) del bordo a quello che ci stava sotto.

Nella mia app ho per esempio al centro una mapview e di lato una sidebar, sono riuscito a far si che il bordo della sidebar crei un ombra sulla mappa.

Dopo aver sbattuto un pò anche con il merging layout ho visto che è molto semplice ottenere questo risultato usando i relativelayout, i quali ti permettono  di sistemare le view come vuoi, e poi giochi con gli allineamenti messi a disposizione dal relative e con i margini.
Io sono riuscito ad ottenere una cosa abbastanza modulare e pulita così.
puoi dirmi qualcosa di più? magari linkarmi la parte sulla guida di android ufficiale...grazie
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™

Offline Cromir

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    CromEth
  • Sistema operativo:
    Windows 7 / Windows 8
Re:Sovrapporre due ImageView,come?
« Risposta #4 il: 20 Febbraio 2012, 22:43:10 CET »
0
Ciao,

un altro modo è utilizzare i FramLayout e poi spostare le ImageView con margin e padding...il problema è che non so quanto sia scalabile con dispositivi di diverse dimensioni, dovresti provare.

Non ho nessun link a tutorial, cmq basta che crei un nuovo FrameLayout, ci aggiungi 2 ImageView e vedi che le sovrappone...e da lì le sposti con margin e padding appunto.

Prova.  :-)

Offline A2PLab

  • Nuovo arrivato
  • *
  • Post: 37
  • [Close The World - txeN ehT nepO]
  • Respect: +1
    • Google+
    • http://it.linkedin.com/in/giuseppemastroeni
    • a2plab
    • a2plab
    • Mostra profilo
    • A2PLab
  • Dispositivo Android:
    HTC Desire, Acer Iconia Tab a500
  • Sistema operativo:
    Ubuntu 11.04
Re:Sovrapporre due ImageView,come?
« Risposta #5 il: 21 Febbraio 2012, 10:27:38 CET »
0
puoi dirmi qualcosa di più? magari linkarmi la parte sulla guida di android ufficiale...grazie

Non c'è una guida ufficiale su come usare i layout :-P Ci sono vari esempi.
Come ti ho detto detto ci ho sbattuto cercando vari metodi. Appena ho provato con i RelativeLayout mi è riuscito subito.

Metti la tue immagine dentro un relative layout e imposti i valori di allineamento nell'xml.
Ti linko la pagina del javadoc anche se devi considerarli da mettere nell'xml o li fa in automatico eclipse.
RelativeLayout | Android Developers

A quel punto sistemi margin e padding per ottenere l'effetto desiderato.
Ti consiglio il RelativeLayout perchè non tiene conto (come z-index) dell'ordine con cui dichiari i tuoi elementi nell'xml, cosa che succede per esempio nel LinearLayout.

Esiste anche la soluzione con il tag <merge>, può essere che per te è più indicata:
Android Layout Tricks #3: Optimize by merging | Android Developers Blog

Spero di esserti stato di aiuto. L'ultima cosa che posso fare è postarti un esempio di codice, anche se il mio è abbastanza lungo, dato che ho vari elementi e dovrei accorciarlo per renderlo comprensibile.

Idea: si potrebbe fare un tutorial su sta cosa, non ho visto molte info su internet.


[Close The World - txeN ehT nepO]

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Sovrapporre due ImageView,come?
« Risposta #6 il: 21 Febbraio 2012, 17:01:00 CET »
0
Diciamo che in un certo senso sono riuscito ad ottenere quello che volevo però non sono ancora soddisfatto e non ho capito come sia possibile una cosa del genere,mi spiego meglio incollando qui delle parti di sorgente:


Parte XML,mi trovo dentro una riga del TableLayout che sto usando come layout principale per la mia App
Codice (XML): [Seleziona]
 <TableRow
           android:id="@+id/tableRow8"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content" >        
       
        <RelativeLayout
           xmlns:android="http://schemas.android.com/apk/res/android"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
            >
               
            <ImageView android:id="@+id/abc"
                           android:layout_width="wrap_content"
                       android:layout_height="wrap_content"  
                            />
           
                 <ImageView android:id="@+id/efg"
                           android:layout_width="wrap_content"
                       android:layout_height="wrap_content"  
                           />
       
       
        </RelativeLayout>
       
</TableRow>

Parte java dove definisco le immagini
Codice (Java): [Seleziona]
    ImageView I = (ImageView) findViewById(R.id.abc);
    I.setImageResource(R.drawable.immagine);

    ImageView II = (ImageView) findViewById(R.id.efg);
    II.setImageResource(R.drawable.img);

Il risultato lo trovate allegato.Vorrei che mi spiegaste perchè le immagini si sono posizionate nel modo che vedete nello screenshot anche senza aver aggiunto attributi...tra l'altro poi quali dovrei usare per sistemare le immagini a mio piacimento? Grazie Anticipatamente
« Ultima modifica: 21 Febbraio 2012, 22:47:10 CET da Alessio_roma™ »
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Sovrapporre due ImageView,come?
« Risposta #7 il: 22 Febbraio 2012, 22:16:35 CET »
0
qualcuno può spiegarmi gentilmente quello che ho chiesto?anche perchè vorrei capire se i risultati che ottengo su una certa risoluzione li otterrei anche su risoluzioni diverse
« Ultima modifica: 22 Febbraio 2012, 23:06:34 CET da Alessio_roma™ »
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™

Offline Alessio_roma™

  • Utente junior
  • **
  • Post: 50
  • Respect: 0
    • Mostra profilo
    • www.blogarm.tk
  • Dispositivo Android:
    LG Nexus 4
  • Sistema operativo:
    Windows 7 ultimate x64, Ubuntu 14.04
Re:Sovrapporre due ImageView,come?
« Risposta #8 il: 23 Febbraio 2012, 15:12:47 CET »
0
Ho un altro problema,sto cercando di rendere il padding dinamico in questo modo:

Codice (Java): [Seleziona]
II.setPadding(I.getWidth(),0,0,0);
però noto che la seconda immagine resta sovrapposta completamente alla prima,per verificare ho cercato di stampare a video l'intero ritornato dal metodo I.getWidth() ma la mia app crasha,guardando nel log di eclipse dice: No package identifier when getting value of resource number (numero della risorsa),mi pare alquanto strano visto che l'immagine me la visualizza
I MIEI SITI:
RPG & Fantasy -> La Fucina di Harad
Pagina personale -> Il Web di Alessio_roma™