public static MaterialProgressDrawable create(@NonNull Context context) {
Drawable[] layers = new Drawable[3];
layers[0] = new ColorDrawable(ThemeUtils.getDisabledThemeAttrColor(context, R.attr.colorControlNormal));
Drawable secondaryProgress = new ColorDrawable(ThemeUtils.getDisabledThemeAttrColor(context, R.attr.colorControlActivated));
layers[1] = new ScaleDrawable(secondaryProgress, Gravity.START, 1f, -1f);
Drawable progress = new ColorDrawable(ThemeUtils.getThemeAttrColor(context, R.attr.colorControlActivated));
layers[2] = new ScaleDrawable(progress, Gravity.START, 1f, -1f);
return new MaterialProgressDrawable(layers);
}
java类android.graphics.drawable.ScaleDrawable的实例源码
MaterialProgressDrawable.java 文件源码
项目:ActionBarProgress
阅读 38
收藏 0
点赞 0
评论 0
ClassDescScaleDrawable.java 文件源码
项目:itsnat_droid
阅读 18
收藏 0
点赞 0
评论 0
@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;
}
SeekBarWidget.java 文件源码
项目:android_ui
阅读 35
收藏 0
点赞 0
评论 0
/**
* <b>Note, that on pre {@link android.os.Build.VERSION_CODES#LOLLIPOP LOLLIPOP} Android versions
* this method will return an instance of {@link TintDrawable TintDrawable} if tint has been applied
* via {@link #setThumbTintList(ColorStateList)}.</b>
* <p>
* The original wrapped drawable can be obtained via {@link TintDrawable#getDrawable()}.
*/
@Override
public Drawable getThumb() {
if (mThumb instanceof ScaleDrawable) return ((ScaleDrawable) mThumb).getDrawable();
return mThumb;
}
SeekBarWidget.java 文件源码
项目:android_ui
阅读 27
收藏 0
点赞 0
评论 0
/**
* Updates a scale level of the given <var>drawable</var> according to the specified scale
* value.
*
* @param drawable The drawable of which scale level to update.
* @param scale The scale value from the range {@code [0.0, 1.0]}.
*/
private void updateDrawableScale(Drawable drawable, float scale) {
if (drawable instanceof ScaleDrawable) drawable.setLevel(Math.round(scale * MAX_LEVEL));
}