android的padding属性,以编程方式获取android:padding属性

从一个角度来看,如何以编程方式获取android:padding属性的值? 我目前正在使用:

private static final String ANDROID_NAMESPACE = "http://schemas.android.com/apk/res/android"; private static final String ATTRIBUTE_PADDING = "padding"; public ActivityWrapperView(Context context, AttributeSet attrs) { super(context, attrs); int padding = attrs.getAttributeIntValue(ANDROID_NAMESPACE, ATTRIBUTE_PADDING, -1); }

这返回-1,我也尝试使用“android:padding”作为属性名称,但仍然返回-1。

编辑:我的要求:当在布局XML中指定android:padding值时,视图将使用此填充。 如果未指定填充,则将使用默认填充

最简单的方法是使用android.R.styleable,如果它已经可用的话。 与获取自定义属性的方式相同。 R.styleable是一个包含int数组属性值的类。 因此,您需要创建自己的int数组,其中包含您需要的属性的int值。

public ActivityWrapperView(Context context, AttributeSet attrs) { super(context, attrs); //check attributes you need, for example all paddings int [] attributes = new int [] {android.R.attr.paddingLeft, android.R.attr.paddingTop, android.R.attr.paddingBottom, android.R.attr.paddingRight} //then obtain typed array TypedArray arr = context.obtainStyledAttributes(attrs, attributes); //and get values you need by indexes from your array attributes defined above int leftPadding = arr.getDimensionPixelOffset(0, -1); int topPadding = arr.getDimensionPixelOffset(1, -1); //You can check if attribute exists (in this examle checking paddingRight) int paddingRight = arr.hasValue(3) ? arr.getDimensionPixelOffset(3, -1) : myDefaultPaddingRight; }

您可以将android:padding添加到自定义视图的属性中。

... ...

然后,您可以像访问其他属性一样访问该属性:

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ActivityWrapperView); float padding = a.getDimension(R.styleable.ActivityWrapperView_android_padding, 0); ... boolean hasPadding = a.hasValue(R.styleable.ActivityWrapperView_android_padding);

你应该看一下getPadding____()函数。

尺寸,填充和边距

要测量其尺寸,视图会考虑其填充。 填充以视图的左,上,右和底部分的像素表示。 填充可用于将视图的内容偏移特定量的像素。 例如,左边的填充为2会将视图的内容推到左边缘右侧2个像素。 可以使用setPadding(int,int,int,int)或setPaddingRelative(int,int,int,int)方法设置填充,并通过调用getPaddingLeft(),getPaddingTop(),getPaddingRight(),getPaddingBottom(),getPaddingStart( ),getPaddingEnd()。

即使视图可以定义填充,它也不会为边距提供任何支持。 但是,视图组提供了这样的支持。 有关详细信息,请参阅ViewGroup和ViewGroup.MarginLayoutParams。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349166.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java命令行界面(第25部分):JCommando

JCommando 网站 上将JCommando描述为“命令行参数的Java参数解析器”。 JCommando读取XML配置以生成一个Java类,该类处理Java应用程序中的解析。 在提供XML配置的 Java命令行解析库的本系列文章中,以前涵盖的唯一基于Java的库是JSAP ,但这是该…

xss 全编码两次_XSS进阶

原标题&#xff1a;XSS进阶1、XSS常用语句及编码绕过XSS常用的测试语句有&#xff1a;●<>alert(1)>●●●常见的XSS的绕过编码有JS编码、HTML实体编码和URL编码。(1)JS编码JS提供了四种字符编码的策略&#xff0c;如下所示。●三个八进制数字&#xff0c;如果个数不够…

鸿蒙系统6月可升级,华为鸿蒙2.0系统大规模升级从6月开始?

你现在使用的智能手机是什么&#xff0c;苹果的iPhone手机&#xff0c;华为智能手机&#xff0c;小米手机还是其他智能手机。从操作系统来看目前的智能手机基本上可以分成iPhone手机跟安卓智能手机&#xff0c;其中iPhone手机使用的是iOS系统&#xff0c;而其他智能手机操作系统…

rstudio安装后如何打开_请问Rstudio安装后无法运行怎么弄?

---------------------------RStudio---------------------------The R session had a fatal error.ERROR system error 5 (&#xfffd;ܾ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ʡ&#xfffd;) [pathC:/Users/&#xfffd;Ű&#xfffd;/AppData/Local/Temp/Rtm…

wso2 esb_WSO2 ESB的一种消息传递方式

wso2 esb正如我之前在WSO2 ESB工作时所发布的那样。 为了更好地理解此ESB&#xff0c;我一直在浏览示例 &#xff08;尚未完成所有示例 &#xff09;。 示例12是关于与ESB的单向消息传递&#xff0c;并使用TCP监视器使其可见。 我之前已经介绍过如何设置类似的工具“ TcpTunnel…

android 录像机,android 录像机

一直都做camera 录像功能其实知道的很少&#xff0c;以前也是迷迷糊糊知道怎么写个video&#xff0c;今天测试了一下&#xff0c;各种问题。问题来源首先是对于SDK的阅读不够仔细。 实践的比较少。 其实所谓的录像 就是两个类的结合 一个是Camera 一个是MediaRecorder 这两个类…

vue 圆形百分比进度条_uniapp Vue 圆环进度条

mode"aspectFill">export default {name: ,props: {},data() {return {animationData: {},audioCoverImg: ../../static/player/normal.png,}},created() {this.drawProgressbg()console.log("动画插件 已经onLoad");},mounted() {},methods: {updateIn…

Spring中的异步和事务性事件侦听器

内置的事件发布功能从Spring的早期版本开始存在&#xff0c;对于处理同一应用程序上下文中Spring组件之间的基本通信仍然有用。 通常&#xff0c;应用程序可以生成应用程序事件&#xff08;可以是任意对象&#xff09;并侦听它们。 整个机制非常简单&#xff1a;使用Applicatio…

html5 canvas获取坐标,HTML5 canvas坐标

在canvas当中有一个特殊的东西叫做“坐标”&#xff01;没错&#xff0c;就是平时所熟知的坐标体系。canvas拥有自己的坐标体系&#xff0c;从最上角0, 0开始&#xff0c;X向右是增大&#xff0c;Y向下是增大。也可以借助CSS当中的盒子模型的概念来帮助理解。尽管canvas元素功能…

linux u盘 慢_u盘加载较慢 建议优化 - 卡饭网

U盘加载速度十分缓慢的原因及解决方法U盘加载速度十分缓慢的原因及解决方法 很多朋友在使用U盘的时候都遇到过电脑接入U盘后&#xff0c;加载读取文件的速度十分的缓慢&#xff0c;总是要等上一段时间才能完全读取&#xff0c;这是怎么回事呢&#xff1f;该怎么处理&#xff1f…

Java命令行界面(第21部分):航空公司2

本系列文章的第21篇关于Java中解析命令行参数的文章的重点是Airline 2库。 Airline 2的GitHub项目页面描述了该库&#xff0c;“ Airline是一个Java库&#xff0c;提供了基于注释的框架来解析命令行界面。” 该页面进入状态&#xff1a;航空公司“既支持简单的单个命令&#xf…

android中进度条的使用,android的进度条使用

android的进度条1、实现的效果2、布局代码先写一个my_browser.xml文件 存放WebViewandroid:layout_width"fill_parent"android:layout_height"fill_parent"android:orientation"vertical" >android:id"id/webView"android:layout_w…

taro 重新加载小程序_Taro开发微信小程序的初体验

了解Taro听说Taro是从几个星期前开始的&#xff0c;在一次饭桌上&#xff0c;一个小伙伴说&#xff1a;“Hey&#xff0c; 你听说了Taro么&#xff0c;听说只需要写一套程序就可以生成H5&#xff0c;小程序以及RN的代码模板&#xff0c;并且类似于React的语法。”“哦&#xff…

应用服务器web服务器_最受欢迎的应用服务器

应用服务器web服务器这是本系列的第二篇文章&#xff0c;我们将发布有关Java安装的统计数据。 使用的数据集来自免费的Plumbr安装&#xff0c;在过去六个月中&#xff0c;我们总共收集了1,024个不同的环境。 该系列的第一篇文章分析了基础-运行JVM的操作系统&#xff0c;是32位…

python 类中定义列表_Python-从类定义中的列表理解访问类变量

小编典典类范围和列表&#xff0c;集合或字典的理解以及生成器表达式不混合。为什么&#xff1b;或者&#xff0c;官方用词在Python 3中&#xff0c;为列表理解赋予了它们自己的适当范围(本地名称空间)&#xff0c;以防止其局部变量渗入周围的范围内(即使在理解范围之后&#x…

mvc html 生成图片,asp.net mvc5 cs代码中获取视图生成后的HTML

public static class ViewExtensions { /// /// 在控制器内获取指定视图生成后的HTML /// /// 当前控制器的上下文 /// 视图名称 /// 视图所需要的参数 /// 视图生成的HTML public static string GetViewHtml(this ControllerContext context, string viewName, Object param) …

如何在Java 8中将Lambda表达式转换为方法引用?

如果您使用Java 8进行编码&#xff0c;那么您会知道使用方法引用代替lambda表达式会使您的代码更具可读性&#xff0c;因此建议尽可能使用方法引用替换lambda表达式&#xff0c;但是&#xff0c;最大的问题是&#xff0c;您如何查找是否可以用方法引用替换lambda&#xff1f; 是…

最大化窗口设置_打开表格总是默认窗口最小化?适用Word、PPT等其他应用

今天有小哥哥说每天早上上班打开第一个表格时&#xff0c;这样显示&#xff1b;打开第二个表时是这样显示&#xff1b;每次打开第二个表后点最大化再打开其他的表才正常显示为最大化的状态。其实&#xff0c;这只是表格的默认打开方式改变了&#xff0c;我们改正过来就好了。在…

html5块元素代码,html5 区块与内联div 与span html块级元素(示例代码)

HTML 和 可以通过 和 将 HTML 元素组合起来。HTML 块元素大多数 HTML 元素被定义为块级元素或内联元素。编者注&#xff1a;"块级元素"译为 block level element&#xff0c;"内联元素"译为 inline element。块级元素在浏览器显示时&#xff0c;通常会以新…

js 加总数组中某一列_JS数组求和的常用方法实例小结

本文实例总结了JS数组求和的常用方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;js数组求和的方法var array [1, 2, 3, 4, 5];var sum 0;1.for循环for (let i 0; i < array.length; i) {sum array[i];}console.log(sum)运行结果sum为 15&#xff0c;如下图…