在屏幕适配的时候我们往往需要在代码里动态设置控件的边距(Margin),因为子控件(ImageButton,Button等)没有直接设置Margin的方法或者其他原因.1.Margin的动态设置如下:
在屏幕适配的时候我们往往需要在代码里动态设置控件的边距(Margin),因为子控件(ImageButton,Button等)没有直接设置Margin的方法或者其他原因.1.Margin的动态设置如下:
//1 首先初始化控件 Button button = new Button(this); //2 获取父控件的属性并且设置好属性 LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);buttonLayoutParams.setMargins(50, 10, 0, 0); button.setLayoutParams(buttonLayoutParams); //3 初始化父控件 LinearLayout layout = new LinearLayout(this); //4 把子控件加入到父控件里 layout.addView(button);
2.除了直接设置子控件的Margin外,我们还可以通过设置父控件的Padding来间接设置子控件的Margin.对于如下的布局文件就可以才起第二种方法:
<LinearLayout android:id="@+id/linearBullet" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:padding="@dimen/padding_3dip" android:stretchColumns="*" > <ImageButton android:id="@+id/button5" android:layout_width="@dimen/width_50dp" android:layout_height="@dimen/height_50dp" android:layout_column="0" android:background="@null" android:scaleType="fitCenter" android:src="@drawable/bullet_img" android:text="字幕"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="字幕" android:gravity="center_horizontal" android:textColor="@color/videoview_text_color" android:layout_gravity="center_horizontal"/> </LinearLayout>
下面是在class里动态设置父控件的Padding:
LinearLayout layout = (LinearLayout)findViewById(R.id.linearBullet); //利用Padding方法设置边距 layout.setPadding(20,20,20,20);
相比较来说,第二种方法好一点,第一种局限性太大,因为xml的布局已经定型,不能随意addView,所以轻易不能使用