美文网首页
Android 自定义属性 attribute 多种类型的处理

Android 自定义属性 attribute 多种类型的处理

作者: 小强开学前 | 来源:发表于2022-12-14 11:36 被阅读0次

谷歌源码

 @NonNull
  private static CornerSize getCornerSize(
      TypedArray a, int index, @NonNull CornerSize defaultValue) {
    TypedValue value = a.peekValue(index);
    if (value == null) {
      return defaultValue;
    }

    if (value.type == TypedValue.TYPE_DIMENSION) {
      // Eventually we might want to change this to call getDimension() since corner sizes support
      // floats.
      return new AbsoluteCornerSize(
          TypedValue.complexToDimensionPixelSize(value.data, a.getResources().getDisplayMetrics()));
    } else if (value.type == TypedValue.TYPE_FRACTION) {
      return new RelativeCornerSize(value.getFraction(1.0f, 1.0f));
    } else {
      return defaultValue;
    }
  }

相关文章

网友评论

      本文标题:Android 自定义属性 attribute 多种类型的处理

      本文链接:https://www.haomeiwen.com/subject/coakqdtx.html