位置: IT常识 - 正文

Android 设置Padding和Margin(动态/静态)(android 设置按钮颜色)

编辑:rootadmin
Android 设置Padding和Margin(动态/静态) 一、什么是padding,什么是margin?

推荐整理分享Android 设置Padding和Margin(动态/静态)(android 设置按钮颜色),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android 设置静态ip,android 设置button形状,android 设置字体大小,android 设置dns,android 设置系统语言,android 设置为默认桌面应用,android 设置系统语言,android 设置系统语言,内容如对您有帮助,希望把文章链接给更多的朋友!

在Android界面开发时,为了布局更加合理好看,很多时候会用上Padding和Margin,

padding和margin是什么呢?即内边距和外边距;

某个View指定为padding是针对该View里面的子View距离该View距离而言的,或者是里面的内容距离容器的距离。

某个View指定为margin是针对该View本身距离别人或者父View而言的。

例如下图,输入框里面的文字内容,如果不设置内边距,那么就会紧挨左上角,这样看起来,就很不友好,合理的设置padding看起来会舒服很多。

如果,不设置外边距,会充满整个父布局,也不好看,这时候就需要margin属性(外边距)。

Android 设置Padding和Margin(动态/静态)(android 设置按钮颜色)

 类似于控件的基础属性,并且不会变化的,我们一般会直接在xml文件里直接设置,这是上图的布局代码

<androidx.appcompat.widget.AppCompatEditText android:id="@+id/chat_input_edit" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginStart="10dp" android:layout_marginTop="10dp" android:layout_marginEnd="10dp" android:layout_marginBottom="10dp" android:paddingHorizontal="12dp" android:paddingVertical="10dp" android:textColor="@color/white" android:textColorHint="#94ffffff" android:textSize="14sp" /> 二、动态设置边距

那么怎么动态设置padding和margin呢?其实也很简单。

1.设置padding

view.setPadding(int left, int top, int right, int bottom)//view为你要设置的控件

例子:在我点击搜索框后,搜索框获取焦点,准备输入内容的时候,图标消失,文本内边距修改,实现代码如下

editText.setOnFocusChangeListener { view, b -> if (b) {//使用dp2px方法进行屏幕适配 view.setPadding(DPUtils.dp2px(12f),DPUtils.dp2px(6f),DPUtils.dp2px(12f),DPUtils.dp2px(6f)) searchIcon.visibility = View.GONE } }

实现效果:最开始文本里左边内边距32dp,点击后变成12dp

//这是dp转为px的方法private fun dp2px(i: Int): Int { return (Resources.getSystem().displayMetrics.density * i + 0.5f).toInt()} 

为什么会有dp2px这个方法来转一下呢?

android中px与sp,dp之间的转换_跑快点的博客-CSDN博客_android px sp由于Android手机厂商很多,导致了不同设备屏幕大小和分辨率都不一样,然而我们开发者要保持在不同设备上显示同样的视觉效果,就需要做一些适配效果。 相关名词解释 屏幕大小:通常指的是屏幕对角线的长度,使用“寸”为单位来衡量。 分辨率:指手机屏幕的像素点个数,例如:720*1280,指的是宽有720个像素点,高有1280个像素点。 dpi:指的是每英寸像素,是由对角线上的像素点数除以屏幕大小所https://blog.csdn.net/qidingquan/article/details/53714603?spm=1001.2101.3001.6650.4&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4-53714603-blog-91974773.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-4-53714603-blog-91974773.pc_relevant_default&utm_relevant_index=92.动态设置margin

android的view中有setPadding,但是没有直接的setMargin方法。如果要在代码中设置该怎么做呢?可以通过设置view里面的 LayoutParams 设置,而这个LayoutParams是根据该view在不同的GroupView而不同的。这儿用的是RelativeLayout是因为在他的父布局是RelativeLayout哦,用成其他的会报错哦~~

val lp = RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT)lp.setMargins(0, 0, DPUtils.dp2px(7f), DPUtils.dp2px(7f))//RelativeLayout可以通过LayoutParams的addRule来添加约束,其他的布局也有类似的一些方法lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM)lp.addRule(RelativeLayout.ALIGN_PARENT_END)textView.layoutParams = lp
本文链接地址:https://www.jiuchutong.com/zhishi/269917.html 转载请保留说明!

上一篇:玩网页游戏卡怎么办?(网页游戏玩着卡)

下一篇:macos monterey支持机型(macos monterey支持哪些显卡)

  • 一般纳税人抵扣小规模期间的专票怎么解决
  • 今日头条测试收款如何记账?
  • 计提存货跌价准备的存货出售
  • 存货减值税务处理
  • 房租押金不退还怎么处理
  • 房地产企业净利润为负的原因
  • 临时售楼处要考虑消防吗
  • 减免货款需要进项税额转出吗
  • 解除合同补偿金需要缴纳个税吗
  • 稳岗补贴需要缴税吗
  • 减免税款交企业所得税吗
  • 土地增值税的纳税人是在我国境内
  • 不用开票的收入有哪些
  • 固定资产出售收入大于净值
  • 公账提现到个人账户多久到账
  • 现金清偿债务怎么算
  • 劳务公司费用成本怎么算
  • 短期投资损失
  • ps不支持win7吗
  • mac辅助功能键盘
  • 电脑重装系统怎么激活
  • 在windows7操作具有
  • enw是什么文件
  • 开发产品转作经营性资产
  • PHP:pg_prepare()的用法_PostgreSQL函数
  • 财务新手要注意哪些事项
  • 分期收款销售账务处理及税务处理
  • 曼哈顿公园大道432号
  • 销售货物收到普票会计分录
  • 基于web的网站设计与实现
  • 机器学习论文源代码浅读:Autoformer
  • php类型约束用法有哪些
  • 企业确认坏账损失领导如何回复
  • 若依idea
  • apache druid使用
  • 预收账款需要申请吗
  • 3步搞定纯真ip数量
  • 工人意外伤害保险
  • 如何注册小微商户
  • 专项应付款转资本公积需要缴纳所得税
  • 会计报表作用 镜
  • 现金净流量的计算公式正确的有
  • 建筑安装业,指从事____的企业
  • 免抵税额下个月还能退吗
  • 内账收入如何确认
  • 减免增值税记账
  • 收到的普通发票被对方作废
  • 什么情况下可以安排待岗
  • 一个企业建账需要注意些什么
  • sql server使用
  • mysql慢查询日志在哪里
  • mysql 索引的类型
  • ubuntu系统睡眠
  • linux大型软件
  • win8系统的电脑
  • 64位win10预览版10565更新补丁KB3105208后蓝屏怎么办?
  • mac系统怎么共享文件夹
  • win10系统如何屏蔽弹窗广告
  • Win10预览版镜像
  • unity自动攻击
  • linux执行多个脚本
  • perl 字符串处理
  • javascriptz
  • android新手入门
  • node.js mongodb
  • jquery中keyup
  • django pypy
  • unity3d武器模型
  • 套接字java
  • jquery checkbox无法用attr()二次勾选问题的解决方法
  • Android Design Support Library
  • 组件中js可以做什么
  • 江苏省税务局电子发票
  • 农产品初加工有哪些
  • 发票查验怎么弄
  • 河北发票查询真伪查询
  • 商铺 评估价
  • 上海增值税怎么报税流程
  • 烟台市独生子女费 打什么电话咨询
  • 北京车船税新标准
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设