Autore Topic: Riposizionare pulsante  (Letto 443 volte)

Offline kubrick89

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    JabbuDev
  • Sistema operativo:
    Windows 7
Riposizionare pulsante
« il: 28 Gennaio 2012, 11:06:11 CET »
0
Salve a tutti mi sono da poco imbattuto nell'avventura della programmazione android e già ho trovato un ostacolo che non riesco a risolvere  :-P
Praticamente sto cercando di spostare un pulsante (ImageButton) all'interno di un framelayout settando i margini del  pulsante a random... il problema è che il mio codice funziona su ics ma non sulle versioni precedenti di android... idee?

Codice (Java): [Seleziona]
        public void rndBtnPos(){
                int randX = (int) ((fl.getWidth()-btn.getWidth())*rnd.nextFloat());
                int randY =     (int) ((fl.getHeight()-btn.getHeight())*rnd.nextFloat());      
               
                FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( btn.getWidth(), btn.getHeight());
                params.setMargins(randX, randY, 0, 0);
                fl.removeAllViews();
                fl.addView(btn ,params);
        }

Grazie mille

Offline kubrick89

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Play Store ID:
    JabbuDev
  • Sistema operativo:
    Windows 7
Re:Riposizionare pulsante
« Risposta #1 il: 28 Gennaio 2012, 13:04:00 CET »
0
Risolto da solo... il problema è che il framelayout ignora i margini se non si specifica espressamente una gravity

Codice (Java): [Seleziona]
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( btn.getWidth(), btn.getHeight());
                        params.setMargins(randX, randY, 0, 0);
                        params.gravity = 0;
                        btn.setLayoutParams(params);
                        btn.requestLayout();