我试图创建一个相对简单的自定义视图,在该视图中,根据代码的位置,XML描述一个离散值(“ 100dp”)或资源值(“ @ dimen / standarDWIDth”).
我不确定如何检查返回的值是否为resID,整数或维值(因为getDimenion(),getInt()和getResourceID()都返回看起来相同的值).
我使用以下代码:
<declare-styleable name="LabeledVIEw"> ... <attr name="labelWIDth" format="dimension|reference"/> ...</declare-styleable>
在我的自定义视图中,我使用以下代码:
if (attrs!=null) { TypedArray typedArray = getContext().obtainStyledAttributes( attrs, R.styleable.LabeledVIEw, 0, 0); int labelWIDth = typedArray.getResourceID(R.styleable.LabeledVIEw_labelWIDth, -1);
在上面的示例中,labelWIDth等于2131165193,因为它实际上是@dimen的残差.
解决方法:
仅使用尺寸格式,不提供参考.但是,您可以为属性使用参考值.应将其视为实际尺寸.
<attr name="labelWIDth" format="dimension"/>typedArray.getDimensionPixelSize
总结 以上是内存溢出为你收集整理的android-如何检查属性是维度,整数还是资源ID全部内容,希望文章能够帮你解决android-如何检查属性是维度,整数还是资源ID所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)