博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在java代码中设置margin
阅读量:4930 次
发布时间:2019-06-11

本文共 2909 字,大约阅读时间需要 9 分钟。

我们平常可以直接在xml里设置margin,如:

<ImageView android:layout_margin="5dip" android:src="@drawable/image" />

但是有些情况下,需要在java代码里来写,可是View本身没有setMargin方法,怎么办呢?

 

通过查阅android api,我们发现android.view.ViewGroup.MarginLayoutParams有个方法setMargins(left, top, right, bottom).

其直接的子类有: FrameLayout.LayoutParams, LinearLayout.LayoutParams and RelativeLayout.LayoutParams.

 

使用方法:

LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 20, 30, 40);
imageView.setLayoutParams(lp);

 原文:

android 使用代码实现 RelativeLayout布局

 

RelativeLayout rl = new RelativeLayout(this);                Button btn1 = new Button(this);        btn1.setText("----------------------");        btn1.setId(1);                RelativeLayout.LayoutParams lp1 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);        lp1.addRule(RelativeLayout.ALIGN_PARENT_TOP);        lp1.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);        // btn1 位于父 View 的顶部,在父 View 中水平居中        rl.addView(btn1, lp1 );               Button btn2 = new Button(this);        btn2.setText("|\n|\n|\n|\n|\n|");        btn2.setId(2);               RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);        lp2.addRule(RelativeLayout.BELOW, 1);        lp2.addRule(RelativeLayout.ALIGN_LEFT, 1);        // btn2 位于 btn1 的下方、其左边和 btn1 的左边对齐        rl.addView(btn2, lp2);               Button btn3 = new Button(this);        btn3.setText("|\n|\n|\n|\n|\n|");        btn3.setId(3);               RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);       lp3.addRule(RelativeLayout.BELOW, 1);        lp3.addRule(RelativeLayout.RIGHT_OF, 2);        lp3.addRule(RelativeLayout.ALIGN_RIGHT, 1);        // btn3 位于 btn1 的下方、btn2 的右方且其右边和 btn1 的右边对齐(要扩充)        rl.addView(btn3,lp3);               Button btn4 = new Button(this);        btn4.setText("--------------------------------------------");        btn4.setId(4);               RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);        lp4.addRule(RelativeLayout.BELOW, 2);        lp4.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);        // btn4 位于 btn2 的下方,在父 Veiw 中水平居中        rl.addView(btn4,lp4);                      setContentView(rl);

原文:

动态修改RelativeLayout的宽高:

参数可以.属性设置,但数值是像素,需要转化为dp单位。

RelativeLayout.LayoutParams linearParams =  (RelativeLayout.LayoutParams)rela_addnote_notetype.getLayoutParams();          linearParams.height = 44;          rela_addnote_notetype.setLayoutParams(linearParams);

原文:

 Android适配所需知识点LayoutParams:

转载于:https://www.cnblogs.com/H-BolinBlog/p/5344666.html

你可能感兴趣的文章
实验四
查看>>
【设计模式】桥接模式
查看>>
51NOD 算法马拉松12
查看>>
Appium python unittest pageobject如何实现加载多个case
查看>>
Yaf--个人封装yaf的框架+swoole+elasticsearch(Window+linux版)
查看>>
Java中的try catch finaly先后调用顺序
查看>>
使用java列举所有给定数组中和为定值的组合
查看>>
hat linux下vnc的安装
查看>>
Perl Nmap处理脚本
查看>>
XGboost
查看>>
1013. Battle Over Cities
查看>>
css 各单位 距离比较
查看>>
Foundation框架: 8.OC中的集合类之二 - NSMutableArray的基本认识
查看>>
phpExcel大数据量情况下内存溢出解决
查看>>
Git 缓存区
查看>>
SQL Server索引的维护 - 索引碎片、填充因子 <第三篇>
查看>>
利用ServiceWorker实现页面的快速加载和离线访问
查看>>
10款最好用的移动web开发工具
查看>>
进程与线程
查看>>
【Spring】web开发 javaConfig方式 图解
查看>>