侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

动态设置控件的Margin

2024-05-15 星期三 / 0 评论 / 0 点赞 / 99 阅读 / 2901 字

在屏幕适配的时候我们往往需要在代码里动态设置控件的边距(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,所以轻易不能使用

广告 广告

评论区