2013-05-14 19 views
11

Come posso impostare un margine di 20dp tra il pulsante "regler" e "decommender" a livello di codice.Impostare un margine tra due pulsanti a livello di programmazione da una linearlayout

enter image description here

Ecco la mia lavorazioni

LinearLayout lytmain = new LinearLayout(Mcontex); 
      lytmain.setOrientation(LinearLayout.VERTICAL); 
      LinearLayout lytdate = new LinearLayout(Mcontex); 
      LinearLayout lytbutton = new LinearLayout(Mcontex); 
      lytbutton.setBackgroundResource(R.color.black); 



      lytbutton.setBackgroundResource(R.color.black); 
      lytdate.setBackgroundResource(R.color.black); 
      lytmain.setBackgroundResource(R.color.black); 
      Button btnset = new Button(Mcontex); 
      Button btncancel = new Button(Mcontex); 


      btncancel.setShadowLayer(2, 1, 1, R.color.black); 
      btnset.setShadowLayer(2, 1, 1, R.color.black); 
      btnset.setBackgroundResource(R.drawable.black_button); 
      btncancel.setBackgroundResource(R.drawable.black_button); 

      btnset.setTextColor(Mcontex.getResources().getColor(R.color.white)); 
      btncancel.setTextColor(Mcontex.getResources().getColor(R.color.white)); 
      btncancel.setTextSize(15); 
      btnset.setTextSize(15); 
      btnset.setText("Régler"); 
      btncancel.setText("Décommander"); 

      btnset.setGravity(Gravity.CENTER); 
      btncancel.setGravity(Gravity.CENTER); 

      final WheelView month = new WheelView(Mcontex); 
      final WheelView year = new WheelView(Mcontex); 
      final WheelView day = new WheelView(Mcontex); 

      lytdate.addView(day, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.2f)); 
      lytdate.addView(month, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 0.8f)); 

      lytdate.addView(year, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1f)); 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 



      lytbutton.addView(btnset, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT,1.5f)); 

      lytbutton.addView(btncancel, new LayoutParams(
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 
        android.view.ViewGroup.LayoutParams.WRAP_CONTENT, 1.5f)); 


      lytbutton.setPadding(5, 5, 5, 5); 
      lytmain.addView(lytdate); 
      lytmain.addView(lytbutton); 

      setContentView(lytmain); 

      getWindow().setLayout(LayoutParams.FILL_PARENT, 
        LayoutParams.WRAP_CONTENT); 
+0

Ci sono davvero un sacco o più efficiente per scegliere la data, piuttosto che questa "cosa" iOSish ;-) –

+0

https://github.com/Prototik/HoloEverywhere o https://github.com/SimonVT/ android-datepicker –

+0

@Waza_Be: naturalmente caro, ma per ora questa cosa di ios è il mio problema. grazie per l'esempio :) – Dimitri

risposta

33

Usa LinearLayout.LayoutParams

http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

Puoi SetMargins a LayoutParams, poi setLayoutParams alla vista.

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
       LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
params.setMargins(0, 2, 0, 0); 
button.setLayoutParams(params); 
+3

ho provato ma nessun effetto sul pulsante – Dimitri

+0

cheers sono riuscito a farlo funzionare. avevi ragione :) – Dimitri