Buongiorno a tutti,
ho letto molte discussioni in merito ma purtroppo sono ancora confuso su quale sia la strada migliore.
Mi spiego meglio sto creando un'applicazione con Android studio e ovviamente deve essere usata e compatibile per tutti i dispositivi ( quindi di dimensioni differenti).

Leggendo nel web ho trovato varie "strade":

1. Recuperare la dimensione dello schermo e impostare ad ogni oggetto una "frazione" del totale.
Di seguito riporto dei pezzi di codice:
codice:
codice:
  public int[] dimension()
    {
        WindowManager wm = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);
        Point size = new Point();
        Display display = wm.getDefaultDisplay();
        display.getSize(size);
        int[] dimension = {size.x,size.y};
        return dimension;

    }


Poi richiamo la funzione che setta per i vari oggetti la dimensione
codice:
codice:
     final SetDimension app = new SetDimension();
        app.SetTextView(TVDateFrom,GuestPreference.getInt(MainActivity.DimensionWidthKey,0),GuestPreference.getInt(MainActivity.DimensionHeigthKey,0)/2);
La funzione è la seguente
codice:

codice:
 public void SetTextView(TextView TV,double dimWidth, double dimHeight){

        //Imposto la dimensione alla TV
        TV.setWidth((int)dimWidth);
        TV.setHeight((int)dimHeight);

    }



Purtroppo tutto lavoro sprecato non so per quale motivo ma nei dispositivi non appare in modo corretto

2. creare un layout per i vari tipi di schermo (large,xlarge etc etc)
Come soluzione mi sembra la più azzeccata ma non soddisfa appieno le mie necessità. Premetto che utilizzo tutti LinearLayout per impostare al meglio la struttura (sto sbagliando?) ma vorrei impostare delle percentuali dello schermo per i vari oggetti non un layout generico che poi in vari dispositivi si veda diversamente.
Per esempio ho testato l'app in un Huawei P9 e un Samsung S6 edge + ed ho notato che, sebbene abbia creato un LinearLayout con width "match_parent", nel Samsung s6 non occupa tutto lo schermo orizzontalmente ma si ferma prima.

Consigli? spero di essere stato abbastanza esaustivo.

Grazie a tutti in anticipo