Пример #1
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			int type;
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.InsetDrawable);
			base.inflateWithAttributes(r, parser, a, [email protected]_visible
				);
			int drawableRes = a.getResourceId([email protected]_drawable
				, 0);
			int inLeft = a.getDimensionPixelOffset([email protected]_insetLeft
				, 0);
			int inTop = a.getDimensionPixelOffset([email protected]_insetTop
				, 0);
			int inRight = a.getDimensionPixelOffset([email protected]_insetRight
				, 0);
			int inBottom = a.getDimensionPixelOffset([email protected]_insetBottom
				, 0);
			a.recycle();
			android.graphics.drawable.Drawable dr;
			if (drawableRes != 0)
			{
				dr = r.getDrawable(drawableRes);
			}
			else
			{
				while ((type = parser.next()) == org.xmlpull.v1.XmlPullParserClass.TEXT)
				{
				}
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
						 ": <inset> tag requires a 'drawable' attribute or " + "child tag defining a drawable"
						);
				}
				dr = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, attrs);
			}
			if (dr == null)
			{
				android.util.Log.w("drawable", "No drawable specified for <inset>");
			}
			mInsetState.mDrawable = dr;
			mInsetState.mInsetLeft = inLeft;
			mInsetState.mInsetRight = inRight;
			mInsetState.mInsetTop = inTop;
			mInsetState.mInsetBottom = inBottom;
			if (dr != null)
			{
				dr.setCallback(this);
			}
		}
Пример #2
0
		public TargetDrawable(android.content.res.Resources res, int resId) : this(res, resId
			 == 0 ? null : res.getDrawable(resId))
		{
		}
Пример #3
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			base.inflate(r, parser, attrs);
			int type;
			int innerDepth = parser.getDepth() + 1;
			int depth;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 ((depth = parser.getDepth()) >= innerDepth || type != org.xmlpull.v1.XmlPullParserClass.END_TAG
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if (depth > innerDepth || !parser.getName().Equals("item"))
				{
					continue;
				}
				android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
					styleable.MipmapDrawableItem);
				int drawableRes = a.getResourceId([email protected]_drawable
					, 0);
				a.recycle();
				android.graphics.drawable.Drawable dr;
				if (drawableRes != 0)
				{
					dr = r.getDrawable(drawableRes);
				}
				else
				{
					while ((type = parser.next()) == org.xmlpull.v1.XmlPullParserClass.TEXT)
					{
					}
					if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
					{
						throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
							 ": <item> tag requires a 'drawable' attribute or " + "child tag defining a drawable"
							);
					}
					dr = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, attrs);
				}
				mMipmapContainerState.addDrawable(dr);
			}
			onDrawableAdded();
		}
Пример #4
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			base.inflate(r, parser, attrs);
			int type;
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.LayerDrawable);
			mOpacityOverride = a.getInt([email protected]_opacity, 
				android.graphics.PixelFormat.UNKNOWN);
			a.recycle();
			int innerDepth = parser.getDepth() + 1;
			int depth;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 ((depth = parser.getDepth()) >= innerDepth || type != org.xmlpull.v1.XmlPullParserClass.END_TAG
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if (depth > innerDepth || !parser.getName().Equals("item"))
				{
					continue;
				}
				a = r.obtainAttributes(attrs, [email protected]);
				int left = a.getDimensionPixelOffset([email protected]_left
					, 0);
				int top = a.getDimensionPixelOffset([email protected]_top
					, 0);
				int right = a.getDimensionPixelOffset([email protected]_right
					, 0);
				int bottom = a.getDimensionPixelOffset([email protected]_bottom
					, 0);
				int drawableRes = a.getResourceId([email protected]_drawable
					, 0);
				int id = a.getResourceId([email protected]_id, android.view.View
					.NO_ID);
				a.recycle();
				android.graphics.drawable.Drawable dr;
				if (drawableRes != 0)
				{
					dr = r.getDrawable(drawableRes);
				}
				else
				{
					while ((type = parser.next()) == org.xmlpull.v1.XmlPullParserClass.TEXT)
					{
					}
					if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
					{
						throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
							 ": <item> tag requires a 'drawable' attribute or " + "child tag defining a drawable"
							);
					}
					dr = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, attrs);
				}
				addLayer(dr, id, left, top, right, bottom);
			}
			ensurePadding();
			onStateChange(getState());
		}
Пример #5
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.StateListDrawable);
			base.inflateWithAttributes(r, parser, a, [email protected]_visible
				);
			mStateListState.setVariablePadding(a.getBoolean([email protected]_variablePadding
				, false));
			mStateListState.setConstantSize(a.getBoolean([email protected]_constantSize
				, false));
			mStateListState.setEnterFadeDuration(a.getInt([email protected]_enterFadeDuration
				, 0));
			mStateListState.setExitFadeDuration(a.getInt([email protected]_exitFadeDuration
				, 0));
			setDither(a.getBoolean([email protected]_dither, DEFAULT_DITHER
				));
			a.recycle();
			int type;
			int innerDepth = parser.getDepth() + 1;
			int depth;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 ((depth = parser.getDepth()) >= innerDepth || type != org.xmlpull.v1.XmlPullParserClass.END_TAG
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if (depth > innerDepth || !parser.getName().Equals("item"))
				{
					continue;
				}
				int drawableRes = 0;
				int i;
				int j = 0;
				int numAttrs = attrs.getAttributeCount();
				int[] states = new int[numAttrs];
				for (i = 0; i < numAttrs; i++)
				{
					int stateResId = attrs.getAttributeNameResource(i);
					if (stateResId == 0)
					{
						break;
					}
					if (stateResId == [email protected])
					{
						drawableRes = attrs.getAttributeResourceValue(i, 0);
					}
					else
					{
						states[j++] = attrs.getAttributeBooleanValue(i, false) ? stateResId : -stateResId;
					}
				}
				states = android.util.StateSet.trimStateSet(states, j);
				android.graphics.drawable.Drawable dr;
				if (drawableRes != 0)
				{
					dr = r.getDrawable(drawableRes);
				}
				else
				{
					while ((type = parser.next()) == org.xmlpull.v1.XmlPullParserClass.TEXT)
					{
					}
					if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
					{
						throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
							 ": <item> tag requires a 'drawable' attribute or " + "child tag defining a drawable"
							);
					}
					dr = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, attrs);
				}
				mStateListState.addStateSet(states, dr);
			}
			onStateChange(getState());
		}
Пример #6
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.RotateDrawable);
			base.inflateWithAttributes(r, parser, a, [email protected]_visible
				);
			android.util.TypedValue tv = a.peekValue([email protected]_pivotX
				);
			bool pivotXRel;
			float pivotX;
			if (tv == null)
			{
				pivotXRel = true;
				pivotX = 0.5f;
			}
			else
			{
				pivotXRel = tv.type == android.util.TypedValue.TYPE_FRACTION;
				pivotX = pivotXRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
			}
			tv = a.peekValue([email protected]_pivotY);
			bool pivotYRel;
			float pivotY;
			if (tv == null)
			{
				pivotYRel = true;
				pivotY = 0.5f;
			}
			else
			{
				pivotYRel = tv.type == android.util.TypedValue.TYPE_FRACTION;
				pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
			}
			float fromDegrees = a.getFloat([email protected]_fromDegrees
				, 0.0f);
			float toDegrees = a.getFloat([email protected]_toDegrees
				, 360.0f);
			int res = a.getResourceId([email protected]_drawable, 
				0);
			android.graphics.drawable.Drawable drawable = null;
			if (res > 0)
			{
				drawable = r.getDrawable(res);
			}
			a.recycle();
			int outerDepth = parser.getDepth();
			int type;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 (type != org.xmlpull.v1.XmlPullParserClass.END_TAG || parser.getDepth() > outerDepth
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if ((drawable = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, 
					attrs)) == null)
				{
					android.util.Log.w("drawable", "Bad element under <rotate>: " + parser.getName());
				}
			}
			if (drawable == null)
			{
				android.util.Log.w("drawable", "No drawable specified for <rotate>");
			}
			mState.mDrawable = drawable;
			mState.mPivotXRel = pivotXRel;
			mState.mPivotX = pivotX;
			mState.mPivotYRel = pivotYRel;
			mState.mPivotY = pivotY;
			mState.mFromDegrees = mState.mCurrentDegrees = fromDegrees;
			mState.mToDegrees = toDegrees;
			if (drawable != null)
			{
				drawable.setCallback(this);
			}
		}
Пример #7
0
		/// <summary>Allows enter key resources to be overridden</summary>
		/// <param name="res">resources to grab given items from</param>
		/// <param name="previewId">preview drawable shown on enter key</param>
		/// <param name="iconId">normal drawable shown on enter key</param>
		/// <param name="labelId">string shown on enter key</param>
		internal virtual void setEnterKeyResources(android.content.res.Resources res, int
			 previewId, int iconId, int labelId)
		{
			if (mEnterKey != null)
			{
				// Reset some of the rarely used attributes.
				mEnterKey.popupCharacters = null;
				mEnterKey.popupResId = 0;
				mEnterKey.text = null;
				mEnterKey.iconPreview = res.getDrawable(previewId);
				mEnterKey.icon = res.getDrawable(iconId);
				mEnterKey.label = res.getText(labelId);
				// Set the initial size of the preview icon
				if (mEnterKey.iconPreview != null)
				{
					mEnterKey.iconPreview.setBounds(0, 0, mEnterKey.iconPreview.getIntrinsicWidth(), 
						mEnterKey.iconPreview.getIntrinsicHeight());
				}
			}
		}
Пример #8
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.AnimationDrawable);
			base.inflateWithAttributes(r, parser, a, [email protected]_visible
				);
			mAnimationState.setVariablePadding(a.getBoolean([email protected]_variablePadding
				, false));
			mAnimationState.mOneShot = a.getBoolean([email protected]_oneshot
				, false);
			a.recycle();
			int type;
			int innerDepth = parser.getDepth() + 1;
			int depth;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 ((depth = parser.getDepth()) >= innerDepth || type != org.xmlpull.v1.XmlPullParserClass.END_TAG
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if (depth > innerDepth || !parser.getName().Equals("item"))
				{
					continue;
				}
				a = r.obtainAttributes(attrs, [email protected]
					);
				int duration = a.getInt([email protected]_duration
					, -1);
				if (duration < 0)
				{
					throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
						 ": <item> tag requires a 'duration' attribute");
				}
				int drawableRes = a.getResourceId([email protected]_drawable
					, 0);
				a.recycle();
				android.graphics.drawable.Drawable dr;
				if (drawableRes != 0)
				{
					dr = r.getDrawable(drawableRes);
				}
				else
				{
					while ((type = parser.next()) == org.xmlpull.v1.XmlPullParserClass.TEXT)
					{
					}
					// Empty
					if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
					{
						throw new org.xmlpull.v1.XmlPullParserException(parser.getPositionDescription() +
							 ": <item> tag requires a 'drawable' attribute or child tag" + " defining a drawable"
							);
					}
					dr = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, attrs);
				}
				mAnimationState.addFrame(dr, duration);
				if (dr != null)
				{
					dr.setCallback(this);
				}
			}
			setFrame(0, true, false);
		}
Пример #9
0
		public override void inflate(android.content.res.Resources r, org.xmlpull.v1.XmlPullParser
			 parser, android.util.AttributeSet attrs)
		{
			android.content.res.TypedArray a = r.obtainAttributes(attrs, [email protected].
				styleable.AnimatedRotateDrawable);
			base.inflateWithAttributes(r, parser, a, [email protected]_visible
				);
			android.util.TypedValue tv = a.peekValue([email protected]_pivotX
				);
			bool pivotXRel = tv.type == android.util.TypedValue.TYPE_FRACTION;
			float pivotX = pivotXRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
			tv = a.peekValue([email protected]_pivotY);
			bool pivotYRel = tv.type == android.util.TypedValue.TYPE_FRACTION;
			float pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat();
			setFramesCount(a.getInt([email protected]_framesCount
				, 12));
			setFramesDuration(a.getInt([email protected]_frameDuration
				, 150));
			int res = a.getResourceId([email protected]_drawable
				, 0);
			android.graphics.drawable.Drawable drawable = null;
			if (res > 0)
			{
				drawable = r.getDrawable(res);
			}
			a.recycle();
			int outerDepth = parser.getDepth();
			int type;
			while ((type = parser.next()) != org.xmlpull.v1.XmlPullParserClass.END_DOCUMENT &&
				 (type != org.xmlpull.v1.XmlPullParserClass.END_TAG || parser.getDepth() > outerDepth
				))
			{
				if (type != org.xmlpull.v1.XmlPullParserClass.START_TAG)
				{
					continue;
				}
				if ((drawable = android.graphics.drawable.Drawable.createFromXmlInner(r, parser, 
					attrs)) == null)
				{
					android.util.Log.w("drawable", "Bad element under <animated-rotate>: " + parser.getName
						());
				}
			}
			if (drawable == null)
			{
				android.util.Log.w("drawable", "No drawable specified for <animated-rotate>");
			}
			android.graphics.drawable.AnimatedRotateDrawable.AnimatedRotateState rotateState = 
				mState;
			rotateState.mDrawable = drawable;
			rotateState.mPivotXRel = pivotXRel;
			rotateState.mPivotX = pivotX;
			rotateState.mPivotYRel = pivotYRel;
			rotateState.mPivotY = pivotY;
			init();
			if (drawable != null)
			{
				drawable.setCallback(this);
			}
		}