如何正确对齐我的布局?

时间:2014-02-02 10:05:15

标签: android alignment android-linearlayout vertical-alignment right-align

我的应用中有一些垂直LinearLayouts,每个都包含2 TextViews,2 ImgaeButtonsButton,每个布局都必须动态创建,因为必须通过 Run_Time 获取的一些数据,我是这样创建的:

// declaring Layout Params
                DisplayMetrics metrics = new DisplayMetrics();
                getWindowManager().getDefaultDisplay().getMetrics(metrics);

                temp_lay = new LinearLayout.LayoutParams(metrics.widthPixels/4, LayoutParams.MATCH_PARENT);
                temp_lay.setMargins(10, 15, 5, 0);


                lp_ineer_ver = new LinearLayout.LayoutParams(
                          LinearLayout.LayoutParams.MATCH_PARENT, 
                          LinearLayout.LayoutParams.MATCH_PARENT, Gravity.CENTER);
                lp_ineer_ver.bottomMargin = 2;
                lp_ineer_ver.leftMargin = 12;
                lp_ineer_ver.topMargin = 2;

// Declaring Layouts and it's contents

            List<LinearLayout> inner_ver = new ArrayList<LinearLayout>();

                LinearLayout temp_inner_ver = new LinearLayout(this);
                temp_inner_ver.setLayoutParams(temp_lay);
                temp_inner_ver.setOrientation(LinearLayout.VERTICAL);
                temp_inner_ver.setWeightSum(2);
                temp_inner_ver.setPadding(7, 7, 7, 7);
                inner_ver.add(temp_inner_ver);


                LinearLayout icon1 = new LinearLayout(this);
                inner_ver.get(0).addView(icon1);

                icon1.setLayoutParams(lp_icon);

                icon1.setBackgroundResource(R.drawable.ac_overlay);
                icon1.setOrientation(LinearLayout.HORIZONTAL);
                icon1.setTag(Lights);

              TextView text1 = new TextView(this);
                icon1.addView(text1);
                LinearLayout.LayoutParams elements_params = (LinearLayout.LayoutParams)text1.getLayoutParams();    
                elements_params.gravity = Gravity.CENTER;
                elements_params.leftMargin = 3;
                elements_params.weight = 1;
                text1.setLayoutParams(elements_params);
                text1.setText("Living Room");
                text1.setTextSize(12);
                text1.setTextColor(Color.WHITE);
                text1.setGravity(Gravity.CENTER|Gravity.LEFT);

             ImageButton rgb1 = new ImageButton(this);
                icon1.addView(rgb1);
                rgb1.setLayoutParams(lp_ineer_ver);
                rgb1.setImageResource(drawable);
                rgb1.setBackgroundColor(Color.TRANSPARENT);

                Button rgp_value1 = new Button(this);
                icon1.addView(rgp_value1);
                elements_params = (LinearLayout.LayoutParams)rgp_value1.getLayoutParams(); 
                elements_params.bottomMargin = 2;
                elements_params.topMargin = 2;
                elements_params.leftMargin = 12;
                elements_params.gravity = Gravity.CENTER;
                rgp_value1.setLayoutParams(elements_params);
                rgp_value1.setText(status.toString());
                rgp_value1.setTextSize(12);
                rgp_value1.setBackgroundColor(Color.TRANSPARENT);
                rgp_value1.setTextColor(Color.WHITE);

            ImageButton cool1 = new ImageButton(this);
                icon1.addView(cool1);
                cool1.setLayoutParams(lp_ineer_ver);
                cool1.setImageResource(Color.TRANSPARENT);
                cool1.setBackgroundColor(Color.TRANSPARENT);

            TextView cool_value1 = new TextView(this);
                icon1.addView(cool_value1);
                elements_params = (LinearLayout.LayoutParams)cool_value1.getLayoutParams();    
                elements_params.gravity = Gravity.CENTER;
                elements_params.leftMargin = 12;
                elements_params.rightMargin = 3;
                cool_value1.setLayoutParams(elements_params);
                cool_value1.setGravity(Gravity.CENTER|Gravity.RIGHT);
                cool_value1.setText("17");
                cool_value1.setTextSize(12);


// Ading the Declared Layouts to the static defined Layout

            ver_rooms = (LinearLayout) findViewById(R.id.ver_rooms);
            ver_rooms.addView(inner_ver_rooms.get(0));

这是静态声明的Layouts,包含动态声明的Layouts:

     <HorizontalScrollView
        android:id="@+id/scroll_rooms"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/ver_rooms"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:baselineAligned="false"
            android:orientation="horizontal" >
        </LinearLayout>
    </HorizontalScrollView>

这项工作给了我这样的结果:

enter image description here

但我想要这个结果:

enter image description here

0 个答案:

没有答案