Adattare risoluzioni

di il
6 risposte

Adattare risoluzioni

Buona sera forum!!!
Ho scritto una semplice app che simula una calcolatrice ma sul mio cellulare questa non viene visualizzata bene, come se i componenti fossero troppo grandi e non possono essere visualizzati. Cosa posso fare per risolvere questo problema? Grazie

6 Risposte

  • Re: Adattare risoluzioni

    Ciao, in android esiste un sistema di naming delle cartelle per creare layout (o, in generale, risorse) diversi in base alla configurazione del dispositivo (es: risoluzione, dimensione schermo, lingua, versione android, orientamento schermo, ecc..). Trovi tutto sulla documentazione ufficiale.
    Potresti, comunque, postare qua il file XML che definisce il tuo layout, magari c'è qualcosa che si può sistemare senza dover creare versioni diverse..


    Sent from my iPhone using Tapatalk
  • Re: Adattare risoluzioni

    Grazie per la risposta. Ecco il codice
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context="unisa.it.calcolatrice.MainActivity" >
    
        <LinearLayout
            android:id="@+id/linearLayout1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:orientation="vertical" 
            android:background="#CCDDEE"
            android:paddingTop="20dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingBottom="20dp"
            >
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#FFAAAA" >
    
                <TextView
                    android:id="@+id/secondarydisplay"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:layout_weight="8"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
    
                <TextView
                    android:id="@+id/operatordisplay"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:layout_weight="1"
                    android:textAppearance="?android:attr/textAppearanceMedium" />
    
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="20dp"
            >
    
                <TextView
                    android:id="@+id/calcdisplay"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="#FF0000"
                    android:gravity="left"
                    android:textAppearance="?android:attr/textAppearanceLarge"
                    android:textStyle="bold" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content" 
                android:paddingTop="20dp"
            >
    
                <TextView
                    android:id="@+id/memoryTitle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Memory:"
                    android:layout_marginRight="10dp"
                    android:textAppearance="?android:attr/textAppearanceSmall"
                />
    
                <TextView
                    android:id="@+id/memorydisplay"
    		        android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:text="" />
    
            </LinearLayout>
       
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="20dp"
            >
    
                <Button
                    android:id="@+id/ButtonClear"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="C" />
    
                <Button
                    android:id="@+id/ButtonMemoryClear"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="MC" />
    
                 <Button
                    android:id="@+id/ButtonMemorySet"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="MS" />
                
           		 <Button
                    android:id="@+id/ButtonMemoryRecall"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="MR" />         
                
            </LinearLayout>
            
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:paddingTop="20dp"
            >
    
                <Button
                    android:id="@+id/Button1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="1" />
    
                <Button
                    android:id="@+id/Button2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="2" />
    
                <Button
                    android:id="@+id/Button3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="3" />
           
           		 <Button
                    android:id="@+id/ButtonPlus"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="+" />         
                
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            >
    
                <Button
                    android:id="@+id/Button4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="4" />
    
                <Button
                    android:id="@+id/Button5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="5" />
    
                <Button
                    android:id="@+id/Button6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="6" />
           		
                <Button
                    android:id="@+id/ButtonMinus"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="-" />        
                </LinearLayout>
    
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            >
    
                <Button
                    android:id="@+id/Button7"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="7" />
    
                <Button
                    android:id="@+id/Button8"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="8" />
              
                <Button
                    android:id="@+id/Button9"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="9" />
                
                 <Button
                    android:id="@+id/ButtonMultiplication"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="*" />         
                
                
            </LinearLayout>
    
             <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
            >
    
                <Button
                    android:id="@+id/ButtonDot"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="." />
    
                <Button
                    android:id="@+id/Button0"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="0" />
              
                <Button
                    android:id="@+id/ButtonEqual"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="=" />
    
          		 <Button
                    android:id="@+id/ButtonDivision"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="/" />         
                
            </LinearLayout>
    
        </LinearLayout>
    
    </RelativeLayout>
  • Re: Adattare risoluzioni

    Così ad occhio mi pare che il problema principale sia il fatto che la view viene "schiacciata" al centro dello schermo. In realtà tutto deriva dal fatto che il "LinearLayout1" abbia le dimensioni "wrap_content" (cioè le sue dimensioni dipendono dal contenuto, ovvero dai figli), invece che "match_parent" (in questo modo lo sfondo azzurrino, ad esempio, sarebbe full screen).

    Dopodiché per rendere più piacevole ed uniforme la visualizzazione dei tasti potresti usare un GridLayout (introdotto con l'API level 14 [Ice Cream Sandwich], per cui se lo vuoi usare su dispositivi che hanno una versione precedente di android ti devi affidare alla libreria di compatibilità app-compat-v7)
  • Re: Adattare risoluzioni

    Ho provato a cambiare con match_parent ma il risultato è sempre lo stesso. Altri consigli??
  • Re: Adattare risoluzioni

    Il problema è quello che ti avevo indicato nel post precedente? Perché se così fosse allora devi "giocare" con le dimensioni dei vari layout innestati, e con i margini fra i vari pulsanti. Comunque, ripeto, in questo caso il gridlayout sarebbe perfetto (almeno per quanto riguarda la parte dei pulsanti), perché ti risparmierebbe di doverti gestire manualmente un layout che è intrinsecamente a forma di griglia.
  • Re: Adattare risoluzioni

    Giusto per farti un esempio della potenza del GridLayout guarda questo tutorial
Devi accedere o registrarti per scrivere nel forum
6 risposte