Il Forum è consultabile solo in modalità lettura. Per domande o consigli iscriviti al nostro GRUPPO FACEBOOK / COMMUNITY cliccando qui

setY API8?

Discussione in 'Development' iniziata da pino8314, 22 Gen 2013.

  1. pino8314

    pino8314 Baby Droid

    Iscritto:
    5 Feb 2011
    Messaggi:
    28
    "Mi Piace":
    0
    Salve,
    chi sa consigliarmi un'alternativa a setY nelle API8?

    garzie mille
     
  2. acer1629

    acer1629 Worker Droid

    Iscritto:
    22 Ago 2012
    Messaggi:
    113
    "Mi Piace":
    22
    Ciao Pino,

    potresti argomentare ?

    Di cosa stiamo parlando ? setY nelle Api di Google si troverà centinaia di volte per le più svariate classi, diventa difficile dare supporto su qualcosa di generico :)
     
  3. pino8314

    pino8314 Baby Droid

    Iscritto:
    5 Feb 2011
    Messaggi:
    28
    "Mi Piace":
    0
    si scusa, in effetti non sono stato chiaro.
    Vorrei poter cambiare la posizione la posizione di un'oggetto della View (Button, ImageView o altro) attraverso la proprietà View.setY(valore)... il problema è che la proprietà setY è disponibile dalle API 11 e io sto lavorando con la 8. Ho provato .setTop(valore) ma anche quest'ultima è stata implementata nelle API 11. Esiste un'altra proprietà che mi permetta di cambiare la posizione di un oggetto che sia compatibile con la versione 8?
     
  4. acer1629

    acer1629 Worker Droid

    Iscritto:
    22 Ago 2012
    Messaggi:
    113
    "Mi Piace":
    22
    puoi provare una cosa del genere :

    Codice:
    
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); //The WRAP_CONTENT parameters can be replaced by an absolute width and height or the FILL_PARENT option)
    params.leftMargin = 50; //Your X coordinate
    params.topMargin = 60; //Your Y coordinate
    childView.setLayoutParams(params);
    
    
     
  5. pino8314

    pino8314 Baby Droid

    Iscritto:
    5 Feb 2011
    Messaggi:
    28
    "Mi Piace":
    0
    grazie per l'aiuto ma purtroppo non credo faccia al caso mio. Nello specifico io ho una ImageView che, con un effetto Translate, viene spostata da una posizione ad un altra dopo aver schiacciato un pulsante. A questo punto, ad animazione avvenuta, se passo dal portrait al landscape (o veiceversa nel caso specifico) l'ImageView ritorna alla sua posizione originaria, questo perchè Android chiude e riapre l'app ogni volta che si ruota lo schermo senza conservare l'ultimo stato dell'activity. Per riuscire a mantenere la posizione entrano in gioco i metodi di callback onSaveInstanceState e onRestoreInstanceState, cosi mi salvo il riferimento alla posizione dell'ImageView per poterla riapplicare. Purtroppo non esiste alcun setY o setTop che mi permetta di riposizionare l'oggetto nella posizione corretta.
    Come posso fare secondo voi?
    possibile mai che una cosa cosi banale come quella di impostare la posizione degli oggetti non sia stata implementata nella prima versione delle API? mi sembra davvero assurdo che ci siano voluti degli anni per integrare un qualcosa di cosi scontato.
     
  6. pino8314

    pino8314 Baby Droid

    Iscritto:
    5 Feb 2011
    Messaggi:
    28
    "Mi Piace":
    0
    ho girato per gran parte della documentazione, ho cercato su internet ma non c'è nulla che possa venirmi in aiuto... a quanto pare nella versione antecedente delle API 11 non è possibile poter posizionare a piacimento un oggetto nella view senza intervenire con soluzioni alternative. Mi sembra davvero molto assurdo.
    Alla fine ho risolto, anche se in modo un po sporco ma a mali estremi estremi rimedi. Mi è venuta l'idea di utilizzare lo stesso oggetto Translation per il posizionamento di un oggetto della view, es.:

    Codice:
    int SetY = 20;
    
    Animation animTranslate= new TranslateAnimation(Animation.ABSOLUTE, setXFrom, Animation.ABSOLUTE, setXTO, Animation.ABSOLUTE,  [b]SetY[/b], Animation.ABSOLUTE, [b]SetY[/b]);
    
    nel cosrtruttore di TranslateAnimation, basta impostare lo stesso valore in FromY e ToY. naturalmente la stessa logica vale per il posizionamento orizzontale

    spero di essere stato di aiuto a qualcun altro che come me non è riuscito a trovare la soluzione ad una cosa cosi banale che non è stata implementata sin dalle origini.