Android LayoutParams使用案例详解

 更新时间:2021年08月25日 14:24:48   作者:傲娇的koala  
这篇文章主要介绍了Android LayoutParams使用案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

LayoutParams是什么?

LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义View的时候使用。

LayoutParams怎么用?

  • 如果父控件是LinearLayout,需要使用LinearLayout.LayoutParams
    代码如下:
LinearLayout.LayoutParams layoutParams=(LinearLayout.LayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams)
  • 如果父控件是RelativeLayout的话,需要使用RelativeLayout.LayoutParams。
RelativeLayout.LayoutParams layoutParams=(RelativeLayout.LayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams)
  • 除了使用布局的LayoutParams外,我们还可以用ViewGroup.MarginLayoutParams来实现:
ViewGroup.MarginLayoutParams layoutParams=(ViewGroup.MarginLayoutParams)getLayoutParams();
layoutParams.leftMargin=getLeft()+offsetX;
layoutParams.topMargin=getTop()+offsetY;
setLayoutParams(layoutParams);
  • 对于一些不需要寻找父View,自己new出一个View自定义的情况。
View line = null;
LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 1);
layoutParams.leftMargin = 10;
line = new View(mContext);
line.setBackgroundResource(R.color.color_tie_bg);
addView(line, layoutParams);
  • 通过WindowManager.LayoutParams来实现,下面是一段获取设置Window大小的代码,例如在自定义Dialog的时候,onCreate方法中编写这段代码,从而设置dialog最后显示Window的大小。
Window win = getWindow();
WindowManager.LayoutParams lp = win.getAttributes();
lp.height = DensityUtil.dip2px(mContext, 185);
lp.width = DensityUtil.dip2px(mContext, 280);
win.setAttributes(lp);

总结

以上是在开发过程中用到的一些LayoutParams相关的内容,后期会不断补充。

到此这篇关于Android LayoutParams使用案例详解的文章就介绍到这了,更多相关Android LayoutParams使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android使用ContentResolver搜索手机通讯录的方法

    Android使用ContentResolver搜索手机通讯录的方法

    这篇文章主要介绍了Android使用ContentResolver搜索手机通讯录的方法,结合实例形式分析了Android中ContentResolver操作手机通讯录的具体步骤与相关实现技巧,需要的朋友可以参考下
    2016-01-01
  • Flutter实现下拉刷新和上拉加载更多

    Flutter实现下拉刷新和上拉加载更多

    这篇文章主要为大家详细介绍了Flutter实现下拉刷新和上拉加载更多,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • Android图片加载库Glide用法

    Android图片加载库Glide用法

    大家好,本篇文章主要讲的Android图片加载库Glide用法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Android模拟器接收UDP数据包的若干问题分析

    Android模拟器接收UDP数据包的若干问题分析

    这篇文章主要介绍了Android模拟器接收UDP数据包的若干问题,结合实例形式较为详细的分析了Android模拟器接收UDP数据的使用方法与相关注意事项,需要的朋友可以参考下
    2016-04-04
  • Android自定义View的一些独家技巧

    Android自定义View的一些独家技巧

    很多人把自定义View想得复杂了,以为有多高深,主要还是没有实践过,下面这篇文章主要给大家介绍了关于Android自定义View的一些独家技巧,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Eclipse下配置Ant脚本并自动打包带签名的Android apk

    Eclipse下配置Ant脚本并自动打包带签名的Android apk

    这篇文章主要介绍了Eclipse下配置Ant脚本并自动打包带签名的Android apk的相关资料,需要的朋友可以参考下
    2016-03-03
  • Android getJSONObject与optJSONObject的区别结合源码分析

    Android getJSONObject与optJSONObject的区别结合源码分析

    这篇文章主要介绍了Android getJSONObject与optJSONObject的区别,结合源码分析的相关资料,需要的朋友可以参考下
    2017-02-02
  • Android实现动态定值范围效果的控件

    Android实现动态定值范围效果的控件

    这篇文中给大家分享一个Android的控件,这个控件实现是一个可以动态选择定值范围的效果,实现后的效果很不错,对大家日常开发或许有所帮助,感兴趣的朋友们可以一起来看看。
    2016-09-09
  • Android实现模拟搜索功能

    Android实现模拟搜索功能

    这篇文章主要为大家详细介绍了Android实现模拟搜索功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 使用Docker来加速构建Android应用的基本部署思路解析

    使用Docker来加速构建Android应用的基本部署思路解析

    这篇文章主要介绍了使用Docker来加速构建Android应用的部署思路解析,在服务器中通过Docker镜像来获得更高效的开发和测试流程,需要的朋友可以参考下
    2016-01-01

最新评论