2013-05-14 1 views
11

Как я могу установить границу 20dp между кнопкой «regler» и «decomender» программно.Установите маржу между двумя кнопками программно из линейной линии

enter image description here

Вот мои разработки

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

Есть много или более эффективный способ, чтобы выбрать дату, а не эту «вещь» iOSish ;-) –

+0

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

+0

@Waza_Be: Конечно, дорогая, но пока эта вещь ios - моя проблема. спасибо за пример :) – Dimitri

ответ

33

Использование LinearLayout.LayoutParams

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

Вы можете setMargins к LayoutParams, затем setLayoutParams на ваш взгляд.

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

Я пробовал, но никаких эффектов на кнопку – Dimitri

+0

ура мне удалось заставить его работать. ты был прав :) – Dimitri