2014-09-05 12 views
16

Sono nuovo nella programmazione. Sono stato usato Layout grafico, quindi quando stavo leggendo il file xml, ho visto FrameLayout. poi ho cercato, ma non ho trovato nulla di utile. cos'è FrameLayout e cosa fa?cosa fa FrameLayout?

+1

Sei stato di qui? http://developer.android.com/reference/android/widget/FrameLayout.html –

+0

Sì, ero stato lì ma non riuscivo a trovare sth che fosse comprensibile. –

risposta

4

Fondamentalmente si mette un punto di vista sopra l'altro, ad esempio:

gonfiaggio testo su immagine

<FrameLayout> 

<ImageView> 
<Textview> 

    </FrameLayout> 
+0

vuoi dire che funziona come linearlayout ?? –

+0

nope linearlayout si posiziona uno dopo l'altro ... fotogramma posto sopra di esso .. le foto dicono per un senario come c'è la griglia sulle immagini e c'è il pulsante Annulla sopra quell'immagine ..... lì usiamo il layout della cornice – KOTIOS

11

Sei sicuro che si Googled esso?

layout frame è progettato per bloccare un'area dello schermo per visualizzare un singolo elemento. In genere, FrameLayout deve essere utilizzato per contenere una visualizzazione figlio singola, poiché può essere difficile organizzare le viste secondarie in un modo che sia scalabile a diverse dimensioni dello schermo senza che i bambini si sovrappongano l'un l'altro.

È possibile, tuttavia, aggiungere più figli a una FrameLayout e controllo loro posizione all'interno del FrameLayout assegnando gravità per ogni bambino, utilizzando l'attributo android: layout_gravity.

Il segreto di FrameLayout è come layout suoi figli. Sebbene sia normalmente progettato per contenere un elemento , impilerà felicemente altri elementi uno sopra l'altro. Quindi FrameLayout è essenzialmente un modo per manipolare l'ordine Z delle viste sullo schermo.

Questo è super utile per un paio di trucchi UI da elementi simili a HUD a pannelli scorrevoli per transizioni animate più complesse. In questo post vedremo un esempio per ognuno di questi.

FrameLayout è progettato per visualizzare un singolo elemento alla volta. Puoi avere più elementi all'interno di FrameLayout ma ogni elemento sarà posizionato in alto a sinistra sullo schermo. Gli elementi che si sovrappongono a verranno visualizzati sovrapposti. Ho creato un semplice layout XML usando FrameLayout che mostra come funziona.

+0

si li ho visti ma non ho potuto scoprire cosa stanno dicendo. –

+0

Puoi pensare come una cornice. Fondamentalmente quello che hai messo sarà allineato a sinistra dello schermo. http://www.learn-android-easily.com/2013/05/frame-layout-in-androis.html – Metehan

+0

Quindi dovresti usarlo per visualizzare un singolo oggetto per la maggior parte delle volte. – Metehan

17

Si utilizza un FrameLayout per impilare le viste figlio l'una sull'altra, con il bambino più recente in cima allo stack. Nell'esempio seguente, TextView è il più recente, quindi viene collocato automaticamente sopra ImageView.

Ad esempio:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ImageView 
     android:id="@+id/backgroundImage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="centerCrop" 
     android:src="@drawable/bitmapie" /> 

    <TextView 
     android:id="@+id/descTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_marginTop="70dp" 
     android:background="@android:color/holo_blue_light" 
     android:padding="10dp" 
     android:text="TextView placed at the top of the Imageview" 
     android:textColor="@android:color/white" 
     android:textSize="22sp" /> 

</FrameLayout> 

uscita:

enter image description here

+2

Mi piace vedere il codice con il loro output. Molte grazie! Upvoted. Inoltre, mi piace il design che hai realizzato lì. Semplicemente molto carino! – Tarik

+0

@Tarik Grazie. Ritengo che le domande relative ai layout debbano avere risposte che mostrano output non solo codice, è per questo che cerco il più possibile di mostrare come le cose funzionano con le immagini. –

7

Si può considerare la parola frame come regolare cornice. Cosa fai con quella cornice? puoi posizionare le foto in quella cornice da una cima all'altra. Come in FrameLayout possiamo posizionare le viste (Qualsiasi layout, o widget come pulsante, testo, immagine così via) all'inizio di altri come @ojonugwa mostra la vista testuale dell'immagine.

+0

Bello, stavo pensando ad esso come a un iframe, visto che vengo dallo sviluppo web. Grazie per la spiegazione più semplice. – Tarik

1

Il layout del frame è progettato per bloccare un'area sullo schermo per visualizzare un singolo elemento. In genere, FrameLayout deve essere utilizzato per contenere una visualizzazione figlio singola, poiché può essere difficile organizzare le viste secondarie in un modo che sia scalabile a diverse dimensioni dello schermo senza che i bambini si sovrappongano l'un l'altro.

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ImageView 
     android:src="@drawable/ic_launcher" 
     android:scaleType="fitCenter" 
     android:layout_height="250px" 
     android:layout_width="250px"/> 

    <TextView 
     android:text="Frame Demo" 
     android:textSize="30px" 
     android:textStyle="bold" 
     android:layout_height="fill_parent" 
     android:layout_width="fill_parent" 
     android:gravity="center"/> 
</FrameLayout> 

enter image description here