JavascriptProva

martedì 13 marzo 2018

OnConfigurationChanged (Overlay)

Ed ora questa è la routine che si occupa della gestione delle rotazioni del cellulare:
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
            resetPosition();
            if(wParams.y>(szDisplay.y-statusBarHeight()-wParams.height)){
                wParams.y=szDisplay.y-statusBarHeight()-wParams.height;
                windowManager.updateViewLayout(wImage,wParams);
            }
        }
    }


Io raggrupperei queste in una serie di "routines di servizio", compresa quella che misura lo schermo e quella che misura la statusBar.
Questa ha la funzione di riportare alle "giuste misure", senza "false presenze" sul display di immagini aventi coordinate che ne superano ampiamente le dimensioni, in relazione alle rotazioni del dispositivo, e non ai movimenti di trascinamento come invece fa resetPosition().

La parte con il LANDSCAPE l'ho aggiustata, adesso devo vedere come gestire la parte che da LANDSCAPE porta a PORTRAIT.
Nel passaggio dal LANDSCAPE a PORTRAIT, la y può rimanere oltre i limiti del display, mentre la x va aggiustata.
La sintassi di resetPosition può andare per la x, perché ne riduce il valore a 0 quando l'immagine cada a meno di metà display mentre ne porta il valore alla larghezza del display quando l'immagine cada oltre metà.
Non vedo perché non vada bene così:
    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){
            resetPosition();
            if(wParams.y>(szDisplay.y-statusBarHeight()-wParams.height)){
                wParams.y=szDisplay.y-statusBarHeight()-wParams.height;
                windowManager.updateViewLayout(wImage,wParams);
            }
        }
        if(newConfig.orientation== Configuration.ORIENTATION_PORTRAIT){
            resetPosition();
        }
    }
Resta il "neo" della posizione y dell'immagine che non va a fondo... per il momento lo lascio così.

Nessun commento:

Posta un commento