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

(0)

相关推荐

  • Android实现声音采集回声与回声消除

    本文实例为大家分享了Android实现声音采集回声与回声消除的具体代码,供大家参考,具体内容如下 一.回声产生的原因 回声(或称回音)是指障碍物对声音的反射.声波在遇到障碍物时,一部分声波会穿过障碍物,而另一部分声波会反射回来形成回声.若障碍物具有坚硬光滑的表面易产生回声:反之,具有柔软的表面则易吸收声音:另外,粗糙的表面易散射声音.回声相比那些直接传播的声音所经过的路程更长,所以会比直接传播的声音晚被听到.如果两列声波的时间间隔小于0.1秒,人耳边无法分辨,只能听到被延长的声音.因为室温(20

  • Android实现简单点赞动画

    思路 找到Activity中DecorView的RootView 确定点赞控件位于屏幕中的坐标值 将点赞效果View加入到RootView中, 给效果View添加自己想要的动画效果. 重复点击时候, 需要将效果View先移除掉再重新加入到RootView中. 代码 /**  * 普通点赞效果, 点击控件后出现一个View上浮  */ public class ViewLikeUtils {     public interface ViewLikeClickListener {        

  • Android自定义RecyclerView Item头部悬浮吸顶

    本文实例为大家分享了Android自定义RecyclerView Item头部悬浮吸顶的具体代码,供大家参考,具体内容如下 概述 1.自定义了一个FrameLayout,引入条目的头部布局加入到自定义FrameLayout中. 2.将RecyclerView加入FrameLayout 3.条目头部View的Alpha动画以及设置透明和不透明这个时机大多是通过打log来确定的,硬推理还是有些难. 4.当屏幕显示区域的第二条Item距离控件顶端的距离小于条目头部View高度时,就开始移动条目头部Vi

  • Android多返回栈技术

    目录 1.系统返回按钮的乐趣 2.Fragment 中的多返回栈 3.排除 Fragment 在技术上的障碍 4.Fragment 中值得期待的地方 4.使用 Navigation 将多返回栈适配到任意屏幕类型 5.在 Navigation 中启用多返回栈 5.保存状态,锁定用户 1.系统返回按钮的乐趣 无论您在使用 Android 全新的 手势导航 还是传统的导航栏,用户的 "返回" 操作是 Android 用户体验中关键的一环,把握好返回功能的设计可以使应用更加贴近整个生态系统.

  • Android自定义轮播图效果

    本文实例为大家分享了Android自定义轮播图效果的具体代码,供大家参考,具体内容如下 概述 1.写一个布局,其中有ViewPager,TextView,LinearLayout. ViewPager:用来承载图片 TextView:用来展示文字描述 LinearLayout:用来展示指示器 2.自定义ConstraintLayout, 在该控件中处理页面切换逻辑等. 分析 1.获取自定义属性以及设置一些属性 public BannerY(Context context, AttributeSe

  • 2021最新Android笔试题总结美团Android岗职能要求

    目录 Android开发面试的几部分 1.基础知识 Java部分: Android部分: 数据结构与算法: 计算机基础: 设计模式: 开源项目: 重点项目经历 技术以外的东西 自我驱动和追求 沟通和协作 我的面经总结 Android Java 计算机网络 数据结构及算法 题外话 优秀的战士需要出色的剑才能战斗.同样,在现代IT中,每个编码人员都需要最好的Android开发人员工具来提高他们的技能和效率.在Android应用程序开发这个残酷的竞争行业中,只有优秀的开发人员才能生存下去.您需要向客户

  • Android 集成Flutter

    目录 Android 集成Flutter 1, Hello Flutter 2, 引入 Flutter 模块 3,使用Flutter 3.1 添加依赖 3.2 运行Flutter页面 3.2.1 添加Flutter页面 4,Flutter APK 解析 5,踩过的坑 Android 集成Flutter Flutter 作为 Google 开源的新一代跨平台.高性能 UI 框架,旨在帮助开发者高效地构建出跨平台的.UI 与交互体验一致的精美应用,推出后一直倍受开发者的青睐. 当需要开发一个全新的应

  • Android端权限隐私的合规化处理实战记录

    目录 是什么 为什么 具体实践 一.Android各版本对权限的适配处理 1.1 早期的注册权限 1.2 动态权限授予 1.3 READ_PHONE_STATE权限的变化 二.隐私信息合规化处理 2.1 隐私信息获取告知的直接化和透明化 2.2 隐私信息获取和传输的安全化 2.3 部分隐私Api调用的严格化 三.遇到的一些问题和坑 总结 是什么 对客户端而言,权限隐私可分为权限和隐私两个大的方面. 权限为用户通过app内弹窗设置或者手机设置内对应app的权限设置方式给予对应app相应的权限,如电

  • Android LayoutParams使用案例详解

    LayoutParams是什么? LayoutParams主要保存了一个View的布局参数,因此可以使用LayoutParams来改变布局参数从而达到View位置的效果,一般在自定义View的时候使用. LayoutParams怎么用? 如果父控件是LinearLayout,需要使用LinearLayout.LayoutParams 代码如下: LinearLayout.LayoutParams layoutParams=(LinearLayout.LayoutParams)getLayoutP

  • Android GridLayout使用案例详解

    目录 一.简介 二.常用属性介绍 三.平分问题 四.小米计算器效果 五.动态加载 一.简介 GridLayout是Android4.0引入的网格布局,使用它可以减少布局嵌套.也算是常用,但一直没仔细看过,今天研究一下 二.常用属性介绍 GridLayout 使用属性 属性 作用 android:columnCount 最大列数 android:rowCount 最大行数 android:orientation GridLayout中子元素的布局方向 android:alignmentMode a

  • Android ActivityManager使用案例详解

    前言 Activity可以获取运行中的应用信息,可以获取到servcie,process,app,memory,Task信息等. 获取信息 ActivityManager.MemoryInfo MemoryInfo中重要的字段:availMem(系统可用内存),totalMem(总内存),threshold(低内存阈值,即低内存的临界线),lowMemory(是否为低内存状态) Debug.MemoryInfo Debug.MemoryInfo主要用于获取进程下的内存信息. ActivityMa

  • Android之AttributeSet案例详解

    public interface AttributeSet { /** * Returns the number of attributes available in the set. * * @return A positive integer, or 0 if the set is empty. */ public int getAttributeCount(); /** * Returns the name of the specified attribute. * * @param in

  • Android Handler使用案例详解

    什么是Handler? Handler可以发送和处理消息对象或Runnable对象,这些消息对象和Runnable对象与一个线程相关联.每个Handler的实例都关联了一个线程和线程的消息队列.当创建了一个Handler对象时,一个线程或消息队列同时也被创建,该Handler对象将发送和处理这些消息或Runnable对象. handler类有两种主要用途: 执行Runnable对象,还可以设置延迟. 两个线程之间发送消息,主要用来给主线程发送消息更新UI. 为什么要用Handler 解决多线程并

  • Android VelocityTracker使用案例详解

       VelocityTracker顾名思义即速度跟踪,在android中主要应用于touch even.VelocityTracker通过跟踪一连串事件实时计算出当前的速度,这样的用法在android系统空间中随处可见,比如Gestures中的Fling, Scrolling等.    VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率.用addMovement(MotionEvent)函数将Motion event加入到Veloci

  • Android Location服务之LocationManager案例详解

    上次介绍了位置服务中的Geocoder,这次就来介绍一下LocationManager.LocationManager系统服务是位置服务的核心组件,它提供了一系列方法来处理与位置相关的问题,包括查询上一个已知位置.注册和注销来自某个LocationProvider的周期性的位置更新.注册和注销接近某个坐标时对一个已定义的Intent的触发等.今天我们就一起探讨一下LocationManager的简单应用. 在进入正题之前,朋友们需要了解与LocationManager相关的两个知识点: prov

  • Android HorizontalScrollView滑动与ViewPager切换案例详解

    layout布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:co

  • Android Canvas之drawBitmap方法案例详解

    前面讲了paint,后面会花几篇主要讲讲canvas,并且由于最近项目比较紧,所以近期的文章都会"短小精悍": paint 作为画笔,里面有非常多而强大的设置方法,比如设置颜色过滤器,设置位图渲染.渐变,设置图像的混合模式等等,而canvas呢?里面提供了哪些利器可以为我们所用,一起来看看:           通过上图我们可以看到,canvas 里的方法基本可以分为这么几类: save.restore 等与层的保存和回滚相关的方法: scale.rotate.clipXXX 等对画布

  • Android开发之对话框案例详解(五种对话框)

    下面通过实例代码给大家分享5种android对话框,具体内容详情如下所示: 1 弹出普通对话框 --- 系统更新 2 自定义对话框-- 用户登录 3 时间选择对话框 -- 时间对话框 4 进度条对话框 -- 信息加载.. 5 popuWindow对话框 1 弹出普通对话框 --- 系统更新  //弹出普通对话框 public void showNormalDialog(View v) { AlertDialog.Builder builder = new Builder(this); //设置D

随机推荐