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使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Flutter时间轴Timeline的实现

    Flutter时间轴Timeline的实现

    时间轴在很多地方都可以用的到,本文介绍了Flutter时间轴Timeline的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05
  • Android自定义view实现动态柱状图

    Android自定义view实现动态柱状图

    这篇文章主要为大家详细介绍了Android自定义view实现动态柱状图的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Android Data Binding数据绑定详解

    Android Data Binding数据绑定详解

    本文主要介绍Android Data Binding数据绑定的知识,这里整理了详细的资料及简单示例代码帮助大家学习理解此部分知识,有需要的小伙伴可以参考下
    2016-09-09
  • Android使用google breakpad捕获分析native cash

    Android使用google breakpad捕获分析native cash

    这篇文章主要介绍了Android使用google breakpad捕获分析native cash 的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • android popupwindow用法详解

    android popupwindow用法详解

    这篇文章主要为大家详细介绍了android popupwindow用法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Android事件分发机制深入刨析原理及源码

    Android事件分发机制深入刨析原理及源码

    Android 的事件分发机制大体可以分为三部分:事件生产、事件分发 、事件消费。事件的生产是由用户点击屏幕产生,我们这次着重分析事件的分发和消费,因为事件分发和处理联系的过于紧密,这篇文章将把事件的分发和消费放在一起分析
    2023-04-04
  • Android实现颜色选取圆盘

    Android实现颜色选取圆盘

    这篇文章主要为大家详细介绍了Android实现颜色选取圆盘,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • android现有项目轻微改动适配平板心得

    android现有项目轻微改动适配平板心得

    这篇文章主要介绍了android现有项目轻微改动适配平板心得,对android适配感兴趣的同学可以参考下
    2021-04-04
  • Android 中自定义ContentProvider与ContentObserver的使用简单实例

    Android 中自定义ContentProvider与ContentObserver的使用简单实例

    这篇文章主要介绍了Android 中自定义ContentProvider与ContentObserver的使用简单实例的相关资料,这里提供实例帮助大家学习理解这部分内容,需要的朋友可以参考下
    2017-09-09
  • Android Studio+Servlet+MySql实现登录注册

    Android Studio+Servlet+MySql实现登录注册

    对于大多数的APP都有登录注册这个功能,本文就来介绍一下Android Studio+Servlet+MySql实现登录注册,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05

最新评论