@Override
public ElementDrawableChildRoot createElementDrawableChildRoot(DOMElemDrawable rootElem, AttrDrawableContext attrCtx)
{
ElementDrawableChildRoot elementDrawableRoot = new ElementDrawableChildRoot();
XMLInflaterContext xmlInflaterContext = attrCtx.getXMLInflaterContext();
XMLInflaterDrawable xmlInflaterDrawable = attrCtx.getXMLInflaterDrawable();
xmlInflaterDrawable.processChildElements(rootElem, elementDrawableRoot,attrCtx);
ArrayList<ElementDrawableChildBase> childList = elementDrawableRoot.getElementDrawableChildList();
Drawable childDrawable = getDrawableChild("drawable", rootElem, xmlInflaterContext, childList);
XMLInflaterRegistry xmlInflaterRegistry = classMgr.getXMLInflaterRegistry();
DOMAttr attrGravity = rootElem.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "scaleGravity");
int gravity = attrGravity != null ? AttrDesc.parseMultipleName(attrGravity.getValue(), GravityUtil.nameValueMap) : Gravity.LEFT; // Valor concreto no puede ser un recurso
DOMAttr attrScaleHeight = rootElem.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "scaleHeight");
float scaleHeight = attrScaleHeight != null ? getPercent(xmlInflaterRegistry.getDimensionOrString(attrScaleHeight.getResourceDesc(), xmlInflaterContext)) : -1; // Se puede poner en un values/ como un <string> o como un <dimen> (aunque luego se procese como un String)
DOMAttr attrScaleWidth = rootElem.getDOMAttribute(NamespaceUtil.XMLNS_ANDROID, "scaleWidth");
float scaleWidth = attrScaleWidth != null ? getPercent(xmlInflaterRegistry.getDimensionOrString(attrScaleWidth.getResourceDesc(),xmlInflaterContext)) : -1;
ScaleDrawable drawable = new ScaleDrawable(childDrawable,gravity,scaleWidth,scaleHeight);
setCallback(childDrawable,drawable);
elementDrawableRoot.setDrawable(drawable);
return elementDrawableRoot;
}
ClassDescScaleDrawable.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:itsnat_droid
作者:
评论列表
文章目录