Android如何在java代码中设置margin
2016-01-12 14:53
411 查看
原创帖,转发请注明出处:http://thierry-xing.iteye.com/blog/1379202
我们平常可以直接在xml里设置margin,如:
Xml代码
<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.
使用方法:
Java代码
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 20, 30, 40);
imageView.setLayoutParams(lp);
首先定义个LayoutParams,然后在设置margin,在把这个LayoutParams设置给控件,如下:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10,10,10,10);//4个参数按顺序分别是左上右下
mView.setLayoutParams(layoutParams);
我们平常可以直接在xml里设置margin,如:
Xml代码
<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.
使用方法:
Java代码
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(10, 20, 30, 40);
imageView.setLayoutParams(lp);
首先定义个LayoutParams,然后在设置margin,在把这个LayoutParams设置给控件,如下:
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(10,10,10,10);//4个参数按顺序分别是左上右下
mView.setLayoutParams(layoutParams);
相关文章推荐
- Android Studio上NDK/JNI开发环境问题
- Android属性动画完全解析(三)-Interpolator和ViewPropertyAnimator的用法
- android studio 运行出现 com.android.ide.common.process.ProcessException
- Android 监听输入法隐藏与显示状态切换
- [Andorid开发艺术探索 读书笔记]View的事件体系(二)
- 解决更新Android SDK时出现A folder failed to be renamed or moved办法
- Android中定时执行任务的3种实现方法
- Android Studio 快捷键
- Android studio快捷键
- 实现android M 的直接分享
- mac 系统开发android,真机调试解决方案
- 安卓滚动数字的实现(从0开始增加到指定数字)
- Android ImageView 常见问题与使用总结
- android mediacodec 在某些机子上无法编码的问题
- Androrid应用打包release版时关闭log日志输出
- Xamarin 编译错误: The file "obj-Release-android-bin-package_resources" does not exist
- UDACITY - How to Create <Anything> in Android
- android自动弹出软键盘(输入键盘)
- Android studio AIDL详解
- android 禁用和开启四大组件的方法(setComponentEnabledSetting )?