package org.itsnat.droid.impl.xmlinflater.drawable.attr; import android.graphics.Shader; import android.graphics.drawable.BitmapDrawable; import org.itsnat.droid.impl.dom.DOMAttr; import org.itsnat.droid.impl.util.MapSmart; import org.itsnat.droid.impl.xmlinflater.drawable.AttrDrawableContext; import org.itsnat.droid.impl.xmlinflater.drawable.classtree.ClassDescBitmapDrawable; import org.itsnat.droid.impl.xmlinflater.shared.attr.AttrDesc; /** * Created by jmarranz on 30/04/14. */ public class AttrDescDrawable_BitmapDrawable_tileMode extends AttrDesc<ClassDescBitmapDrawable,BitmapDrawable,AttrDrawableContext> { public static final MapSmart<String,Integer> nameValueMap = MapSmart.<String,Integer>create( 4 ); static { nameValueMap.put("disabled", -1); nameValueMap.put("clamp", 0); nameValueMap.put("repeat", 1); nameValueMap.put("mirror", 2); } public AttrDescDrawable_BitmapDrawable_tileMode(ClassDescBitmapDrawable parent, String name) { super(parent,name); } @Override public void setAttribute(BitmapDrawable target, DOMAttr attr, AttrDrawableContext attrCtx) { int tileMode = AttrDesc.<Integer>parseSingleName(attr.getValue(), nameValueMap); // Valor concreto no puede ser un recurso Shader.TileMode tileModeObj; if (tileMode != -1) { switch (tileMode) { case 0: tileModeObj = Shader.TileMode.CLAMP; break; case 1: tileModeObj = Shader.TileMode.REPEAT; break; case 2: tileModeObj = Shader.TileMode.MIRROR; break; default: // Imposible este caso tileModeObj = null; break; } } else tileModeObj = null; String name = getName(); if ("tileMode".equals(name)) target.setTileModeXY(tileModeObj,tileModeObj); else if ("tileModeX".equals(name)) target.setTileModeX(tileModeObj); else if ("tileModeY".equals(name)) target.setTileModeY(tileModeObj); } @Override public void removeAttribute(BitmapDrawable target, AttrDrawableContext attrCtx) { setAttributeToRemove(target, "disabled",attrCtx); } }