Ciao, la mia app funziona perfettamente.
Oggi volevo provarla su un tablet di 10 pollici e come mi aspettavo le dimensioni dei vari oggetti del form non si adattavano alla dimensioni dello schermo. (La progettazione l'avevo fatto per uno schermo da 3.7'')
Ho iniziato cercando di modificare le dimensioni degli oggetti in questo modo:
codice:
protected void onStart(){
super.onStart();
final ListView lista = (ListView) findViewById(R.id.list);
scala(lista, 140, 120);
}
dove scala è definito così:
codice:
public void scala(ListView widget, int w, int h)
{
DisplayMetrics metrics = getResources().getDisplayMetrics();
int deviceWidth = metrics.heightPixels;
int deviceHeight = metrics.widthPixels;
float widthInPercentage = ( (float) w / deviceWidth ) * 100;
float heightInPercentage = ( (float) h / deviceHeight ) * 100;
int mLayoutWidth = (int) ( (widthInPercentage * deviceWidth) / 100 );
int mLayoutHeight = (int) ( (heightInPercentage * deviceHeight) / 100 );
LayoutParams layoutParams = new LayoutParams(mLayoutWidth, mLayoutHeight);
widget.setLayoutParams(layoutParams);
}
Succede che una volta usciti dal metodo scala, il programma crasha e da questo errore:
"RelativeLayout$DependencyGraph.findRoots(int[]) line: 1303
Dove sbaglio?
Inoltre, per quanto riguarda le posizioni degli oggetti cosa devo fare per fare in modo che relativamente alle dimensioni dello schermo si adattino? (Tipo se un certo bottone ha coordinata x pari a larghezza schermo/3 e coordinata y pari a altezza/3)
Grazie in anticipo a chi mi aiuterà