Autore Topic: Problema nel girare il tablet/cellulare  (Letto 1247 volte)

Offline mauro21

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Problema nel girare il tablet/cellulare
« il: 18 Luglio 2012, 16:38:54 CEST »
0
ciao a tutti
ho un problema con la mia app
se il tablet è in verticale tutto ok, le activity si vedono cosi



ma quando lo giro (orizzontale) si vedono in questo modo.




 Come posso risolvere? allego il layout delle 2 activity

activity grafici

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/graph1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_weight="1.49"
        android:orientation="horizontal" />

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="72dp"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button1"
            android:layout_width="148dp"
            android:layout_height="72dp"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.31"
            android:text="@string/buttonevento" />

        <Button
            android:id="@+id/button2"
            android:layout_width="148dp"
            android:layout_height="72dp"
            android:layout_gravity="center_horizontal"
            android:layout_weight="0.31"
            android:text="@string/buttonfecha" />
    </LinearLayout>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/button3"
            android:layout_width="157dp"
            android:layout_height="match_parent"
            android:text="@string/buttontodotemp" />

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

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/parmm" />

    <com.example.tablayout.HorizontalNumberPicker
        android:id="@+id/horizontal_number_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </com.example.tablayout.HorizontalNumberPicker>

        <CheckBox
            android:id="@+id/check1"
            android:layout_width="155dp"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:text="@string/scro" />
       
    </LinearLayout>
   
</LinearLayout>

   

</LinearLayout>

activity inserimento eventi

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip"
    android:layout_gravity="center_horizontal" >

    <TextView
        android:id="@+id/testo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/eligeevento" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
       
        android:layout_gravity="center_horizontal" />

    <TextView
        android:id="@+id/timeDisplay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:layout_gravity="center_horizontal" />

    <Button
        android:id="@+id/pickTime"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/cambiahora"
        android:layout_gravity="center_horizontal"
        />

    <TextView
        android:id="@+id/timeDisplay2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text=""
        android:layout_gravity="center_horizontal" />

    <Button
        android:id="@+id/pickTime2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/horafinal"
        android:layout_gravity="center_horizontal"/>

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_gravity="center_horizontal">

        <TextView
            android:id="@+id/dateDisplay"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:layout_gravity="center_horizontal" />

        <Button
            android:id="@+id/pickDate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/cambiafecha"
            android:layout_gravity="center_horizontal"/>
    </LinearLayout>

    <CheckedTextView
        android:id="@+id/checkedTextView1"
        android:layout_width="160dp"
        android:layout_height="0dp"
        android:layout_weight="0.54"
        android:text=""
        android:layout_gravity="center_horizontal"/>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/enviadatos"
        android:layout_gravity="center_horizontal"/>


</LinearLayout>

Grazie 1000

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema nel girare il tablet/cellulare
« Risposta #1 il: 18 Luglio 2012, 16:53:02 CEST »
0
Dovresti creare nella casella layout-land (xml per quando il device è in orientazione orizzontale) un layout ottimizzato per il landscape, per esempio nel secondo caso metti il grafico a sinistra ed i button impilati a destra. Penserà poi il framework a switchare da uno all'altro quando giri il cell.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mauro21

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Re:Problema nel girare il tablet/cellulare
« Risposta #2 il: 18 Luglio 2012, 16:57:11 CEST »
0
scusa non ho capito, cos'è la casella layout-land?

EDIT: ci sono arrivato ehehe ho creato la cartella layout-land... ora provo e ti dico..
grazie 1000
« Ultima modifica: 18 Luglio 2012, 17:00:23 CEST da mauro21 »

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Problema nel girare il tablet/cellulare
« Risposta #3 il: 18 Luglio 2012, 17:23:52 CEST »
0
scusa non ho capito, cos'è la casella layout-land?

EDIT: ci sono arrivato ehehe ho creato la cartella layout-land... ora provo e ti dico..
grazie 1000

Comunque visto che non la avevi, usa questa pagina come riferimento sui resource qualifier (incluso anche -land).

Providing Resources | Android Developers
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline mauro21

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Re:Problema nel girare il tablet/cellulare
« Risposta #4 il: 18 Luglio 2012, 17:29:31 CEST »
0
un problema:
non riesco a disegnare bene il nuovo layout. Nell'anteprima del file xml su esclipse vedo una cosa, mentre sul simulatore appare un altra.
allego uno screenshot

il risultato che vorrei è molto semplice: grafico a sinistra, 3 bottoni al centro e il resto a destra.
Come creo una soluzione che vada bene sempre, cioe in ogni dispositivo che uso??

non esiste un'opzione x esempio x dirgli è un layout orizzontale, di cui il grafico deve occupar sempre il 40% dello schermo, i bottoni devon affiancarlo e occupar un 30% e ilrestante 30% sempre a fianco lo devono occupare il resto dei bottoni? (come appare nel secondo screenshot, dove lo spazio a sx è il grafico)

qui l'xml

Codice: [Seleziona]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:baselineAligned="false"
    android:orientation="horizontal" >

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/graph1"
        android:layout_width="322dp"
        android:layout_height="314dp" />

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

        <Button
            android:id="@+id/button1"
            android:layout_width="148dp"
            android:layout_height="72dp"
            android:layout_gravity="center_horizontal"
            android:text="@string/buttonevento" />

        <Button
            android:id="@+id/button2"
            android:layout_width="148dp"
            android:layout_height="72dp"
            android:text="@string/buttonfecha" />

        <Button
            android:id="@+id/button3"
            android:layout_width="146dp"
            android:layout_height="wrap_content"
            android:text="@string/buttontodotemp" />

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

            android:orientation="vertical" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/parmm" />

    <com.example.tablayout.HorizontalNumberPicker
        android:id="@+id/horizontal_number_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
    </com.example.tablayout.HorizontalNumberPicker>

    <CheckBox
        android:id="@+id/check1"
        android:layout_width="155dp"
        android:layout_height="wrap_content"
        android:text="@string/scro" />
</LinearLayout>
</LinearLayout>

grazie
« Ultima modifica: 18 Luglio 2012, 17:35:51 CEST da mauro21 »

Offline mauro21

  • Nuovo arrivato
  • *
  • Post: 49
  • Respect: 0
    • Mostra profilo
Re:Problema nel girare il tablet/cellulare
« Risposta #5 il: 18 Luglio 2012, 20:47:11 CEST »
0
Risolto!!!
si può fare la storia delle percentuali:

nel LinearLayout padre si mette x esempio android:weightSum="1"

poi nei LinearLayout figli si setta
android:layout_width="0dip" (x esempio prendo in considerazione la larghezza)
e poi gli si da la percentuale (chiamata peso)
android:layout_weight=".44" (es il 44% dello spazio)

Offline emaborsa

  • Utente normale
  • ***
  • Post: 274
  • Java Developer
  • Respect: +33
    • Google+
    • emaborsa
    • Mostra profilo
    • www.emaborsa.com
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Linux 10 - Win8.1 - Android 4.1.2
Re:Problema nel girare il tablet/cellulare
« Risposta #6 il: 19 Luglio 2012, 10:39:21 CEST »
0
Risolto!!!
si può fare la storia delle percentuali:

nel LinearLayout padre si mette x esempio android:weightSum="1"

poi nei LinearLayout figli si setta
android:layout_width="0dip" (x esempio prendo in considerazione la larghezza)
e poi gli si da la percentuale (chiamata peso)
android:layout_weight=".44" (es il 44% dello spazio)

Dire percentuali non è proprio esatto, però il sistema è quello. Per esempio se hai la larghezza e vuoi dividerla per 3 parti uguali, puoi dichiarare android:weightSum="3" e poi ogni singolo campo android:layout_weight="1".
L'importante è che la somma dei android:layout_weight è uguale alla android:weightSum.