web-dev-qa-db-ja.com

linearlayoutからプログラムで2つのボタンの間にマージンを設定します

プログラムでボタン「regler」と「decommender」の間に20dpのマージンを設定するにはどうすればよいですか。

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);
13
Dimitri

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);
38
noni