diff options
Diffstat (limited to 'graphics')
-rw-r--r-- | graphics/java/android/graphics/Paint.java | 56 | ||||
-rw-r--r-- | graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java | 25 |
2 files changed, 46 insertions, 35 deletions
diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 048d09c..896f81e 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -358,22 +358,7 @@ public class Paint { */ public Paint(Paint paint) { mNativePaint = native_initWithPaint(paint.mNativePaint); - mHasCompatScaling = paint.mHasCompatScaling; - mCompatScaling = paint.mCompatScaling; - mInvCompatScaling = paint.mInvCompatScaling; - mBidiFlags = paint.mBidiFlags; - hasShadow = paint.hasShadow; - mColorFilter = paint.mColorFilter; - mMaskFilter = paint.mMaskFilter; - mPathEffect = paint.mPathEffect; - mRasterizer = paint.mRasterizer; - mShader = paint.mShader; - mTypeface = paint.mTypeface; - mXfermode = paint.mXfermode; - shadowColor = paint.shadowColor; - shadowDx = paint.shadowDx; - shadowDy = paint.shadowDy; - shadowRadius = paint.shadowRadius; + setClassVariablesFrom(paint); } /** Restores the paint to its default settings. */ @@ -396,21 +381,36 @@ public class Paint { if (this != src) { // copy over the native settings native_set(mNativePaint, src.mNativePaint); - // copy over our java settings - mColorFilter = src.mColorFilter; - mMaskFilter = src.mMaskFilter; - mPathEffect = src.mPathEffect; - mRasterizer = src.mRasterizer; - mShader = src.mShader; - mTypeface = src.mTypeface; - mXfermode = src.mXfermode; - mHasCompatScaling = src.mHasCompatScaling; - mCompatScaling = src.mCompatScaling; - mInvCompatScaling = src.mInvCompatScaling; - mBidiFlags = src.mBidiFlags; + setClassVariablesFrom(src); } } + /** + * Set all class variables using current values from the given + * {@link Paint}. + */ + private void setClassVariablesFrom(Paint paint) { + mColorFilter = paint.mColorFilter; + mMaskFilter = paint.mMaskFilter; + mPathEffect = paint.mPathEffect; + mRasterizer = paint.mRasterizer; + mShader = paint.mShader; + mTypeface = paint.mTypeface; + mXfermode = paint.mXfermode; + + mHasCompatScaling = paint.mHasCompatScaling; + mCompatScaling = paint.mCompatScaling; + mInvCompatScaling = paint.mInvCompatScaling; + + hasShadow = paint.hasShadow; + shadowDx = paint.shadowDx; + shadowDy = paint.shadowDy; + shadowRadius = paint.shadowRadius; + shadowColor = paint.shadowColor; + + mBidiFlags = paint.mBidiFlags; + } + /** @hide */ public void setCompatibilityScaling(float factor) { if (factor == 1.0) { diff --git a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java index 94a8488..7c4e147 100644 --- a/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java +++ b/graphics/java/android/graphics/drawable/AnimatedRotateDrawable.java @@ -55,7 +55,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac private void init() { final AnimatedRotateState state = mState; - mIncrement = 360.0f / (float) state.mFramesCount; + mIncrement = 360.0f / state.mFramesCount; final Drawable drawable = state.mDrawable; if (drawable != null) { drawable.setFilterBitmap(true); @@ -65,6 +65,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac } } + @Override public void draw(Canvas canvas) { int saveCount = canvas.save(); @@ -146,14 +147,17 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac | mState.mDrawable.getChangingConfigurations(); } + @Override public void setAlpha(int alpha) { mState.mDrawable.setAlpha(alpha); } + @Override public void setColorFilter(ColorFilter cf) { mState.mDrawable.setColorFilter(cf); } + @Override public int getOpacity() { return mState.mDrawable.getOpacity(); } @@ -228,10 +232,10 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac tv = a.peekValue(R.styleable.AnimatedRotateDrawable_pivotY); final boolean pivotYRel = tv.type == TypedValue.TYPE_FRACTION; final float pivotY = pivotYRel ? tv.getFraction(1.0f, 1.0f) : tv.getFloat(); - - final int framesCount = a.getInt(R.styleable.AnimatedRotateDrawable_framesCount, 12); - final int frameDuration = a.getInt(R.styleable.AnimatedRotateDrawable_frameDuration, 150); - + + setFramesCount(a.getInt(R.styleable.AnimatedRotateDrawable_framesCount, 12)); + setFramesDuration(a.getInt(R.styleable.AnimatedRotateDrawable_frameDuration, 150)); + final int res = a.getResourceId(R.styleable.AnimatedRotateDrawable_drawable, 0); Drawable drawable = null; if (res > 0) { @@ -265,8 +269,6 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac rotateState.mPivotX = pivotX; rotateState.mPivotYRel = pivotYRel; rotateState.mPivotY = pivotY; - rotateState.mFramesCount = framesCount; - rotateState.mFrameDuration = frameDuration; init(); @@ -275,6 +277,15 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac } } + public void setFramesCount(int framesCount) { + mState.mFramesCount = framesCount; + mIncrement = 360.0f / mState.mFramesCount; + } + + public void setFramesDuration(int framesDuration) { + mState.mFrameDuration = framesDuration; + } + @Override public Drawable mutate() { if (!mMutated && super.mutate() == this) { |