@@ -179,7 +179,8 @@ public ShapeDrawableBuilder(View view, TypedArray typedArray, IShapeDrawableStyl
179179 }
180180 }
181181
182- mSolidGradientOrientation = transformGradientOrientation (typedArray .getInt (styleable .getSolidGradientOrientationStyleable (), 0 ));
182+ mSolidGradientOrientation = transformGradientOrientation (typedArray .getInt (styleable .getSolidGradientOrientationStyleable (),
183+ getDefaultGradientOrientation ()));
183184 mSolidGradientType = typedArray .getInt (styleable .getSolidGradientTypeStyleable (), ShapeGradientType .LINEAR_GRADIENT );
184185 mSolidGradientCenterX = typedArray .getFloat (styleable .getSolidGradientCenterXStyleable (), 0.5f );
185186 mSolidGradientCenterY = typedArray .getFloat (styleable .getSolidGradientCenterYStyleable (), 0.5f );
@@ -213,7 +214,8 @@ public ShapeDrawableBuilder(View view, TypedArray typedArray, IShapeDrawableStyl
213214 }
214215 }
215216
216- mStrokeGradientOrientation = transformGradientOrientation (typedArray .getInt (styleable .getStrokeGradientOrientationStyleable (), 0 ));
217+ mStrokeGradientOrientation = transformGradientOrientation (typedArray .getInt (styleable .getStrokeGradientOrientationStyleable (),
218+ getDefaultGradientOrientation ()));
217219
218220 mStrokeSize = typedArray .getDimensionPixelSize (styleable .getStrokeSizeStyleable (), 0 );
219221 mStrokeDashSize = typedArray .getDimensionPixelSize (styleable .getStrokeDashSizeStyleable (), 0 );
@@ -858,13 +860,21 @@ private static int getLayoutDirection(View view) {
858860 return layoutDirection ;
859861 }
860862
863+ /**
864+ * 获取默认的渐变色方向
865+ */
866+ private int getDefaultGradientOrientation () {
867+ // Github issue 地址:https://github.com/getActivity/ShapeView/issues/109
868+ return 10 ;
869+ }
870+
861871 /**
862872 * 将 ShapeView 框架中渐变色的 xml 属性值转换成 ShapeDrawable 中的枚举值
863873 */
864874 private ShapeGradientOrientation transformGradientOrientation (int value ) {
865875 switch (value ) {
866- case 10 :
867- return ShapeGradientOrientation .START_TO_END ;
876+ case 0 :
877+ return ShapeGradientOrientation .LEFT_TO_RIGHT ;
868878 case 180 :
869879 return ShapeGradientOrientation .RIGHT_TO_LEFT ;
870880 case 1800 :
@@ -889,9 +899,9 @@ private ShapeGradientOrientation transformGradientOrientation(int value) {
889899 return ShapeGradientOrientation .BOTTOM_RIGHT_TO_TOP_LEFT ;
890900 case 1350 :
891901 return ShapeGradientOrientation .BOTTOM_END_TO_TOP_START ;
892- case 0 :
902+ case 10 :
893903 default :
894- return ShapeGradientOrientation .LEFT_TO_RIGHT ;
904+ return ShapeGradientOrientation .START_TO_END ;
895905 }
896906 }
897907}
0 commit comments