Adattare risoluzioni

di Anonimizzato13956 il
6 risposte
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

  • 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
  • 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>
  • 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)
  • Ho provato a cambiare con match_parent ma il risultato è sempre lo stesso. Altri consigli??
  • 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.
  • Giusto per farti un esempio della potenza del GridLayout guarda questo tutorial
Devi accedere o registrarti per scrivere nel forum
6 risposte