Ho capito poco, per via del ma di testa e del KeepAlive che non conosco (anche se il nome mi fa intuire il suo scopo). Ti succedeva che si metteva il dispositivo in standby o ripartiva la Activity_Create per via dell'orientamento? Mah, rileggerò a mente fresca.
La faccenda delle altezze sta diventando un problema generale. Se dai un'occhiata al
thread che ho aperto, capirai che intendo dire.
In due parole, in quel thread io mi domando:
se io disegno un'immagine geometrica con un sw sul PC, mettiamo che io disegni qualche linea lunga 400 pixel (o in verticale!) e poi salvo l'immagine jpg;
caricandola in un dispositivo android, come posso sapere quei 400 pixel a quandi dpi di Android corrispondono (per poi adattare tutto?).
Anche se io scalo l'immagine, anche se il dispositivo ha le stesse dimensioni (ma magari sicuramente densità diversa), se poi voglio scrivere su quella linea, oppure fare altro relativamente a quella linea,
penso (ma non ne sono certo!) di dover conoscere il rapporto tra le dimensioni del mio pixel sul PC ed i dpi di OGNI dispositivo.
Insomma, un bel casino, finora irrisolto.
Penso che tu possa risolvere quello dell'altezza esprimendola in % di Y.
Cioè, guardi che percentuale di Y occupa la scrollview nel variant e la usi nel codice:
mettiamo che il variant che hai usato come base sia alto 800dpi (e largo 1200dpi, che so) e la scrollview sia alta 400dpi, l'altezza della scrollview sarà il 50%y ((400dpi/800dpi) * 100). Se dopo caricamento del layout scrivi: MiaScrollView.Height = 50%y hai risolto.