From f89209271acf8568067e7b242b2312d22d501a15 Mon Sep 17 00:00:00 2001 From: yangyi Date: Wed, 16 Aug 2017 16:27:41 +0800 Subject: [PATCH] =?UTF-8?q?2017=E5=B9=B408=E6=9C=8816=E6=97=A516:27:41?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +-- .idea/misc.xml | 15 +----------- .idea/modules.xml | 2 ++ .../practice/Practice01ClipRectView.java | 3 +++ .../practice/Practice02ClipPathView.java | 13 ++++++++++ .../practice/Practice03TranslateView.java | 7 ++++++ .../practice/Practice04ScaleView.java | 7 ++++++ .../practice/Practice05RotateView.java | 8 +++++++ .../practice/Practice06SkewView.java | 7 ++++++ .../Practice07MatrixTranslateView.java | 17 +++++++++++++ .../practice/Practice08MatrixScaleView.java | 17 +++++++++++++ .../practice/Practice09MatrixRotateView.java | 19 +++++++++++++++ .../practice/Practice10MatrixSkewView.java | 17 +++++++++++++ .../practice/Practice11CameraRotateView.java | 17 +++++++++++++ .../Practice12CameraRotateFixedView.java | 24 +++++++++++++++++++ ...Practice13CameraRotateHittingFaceView.java | 13 +++++----- .../practice/Practice14FlipboardView.java | 15 ++++++++++++ build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 19 files changed, 184 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 39fb081..30bf41e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,8 @@ *.iml .gradle /local.properties -/.idea/workspace.xml -/.idea/libraries .DS_Store +/.idea /build /captures .externalNativeBuild diff --git a/.idea/misc.xml b/.idea/misc.xml index 4716600..13c4629 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,8 +1,5 @@ - - - - - - - - - - - - - - + diff --git a/.idea/modules.xml b/.idea/modules.xml index 2fdecc1..00269e8 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -3,6 +3,8 @@ + + diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice01ClipRectView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice01ClipRectView.java index e667df3..5a6679f 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice01ClipRectView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice01ClipRectView.java @@ -38,6 +38,9 @@ protected void onDraw(Canvas canvas) { int left = (getWidth() - bitmap.getWidth()) / 2; int top = (getHeight() - bitmap.getHeight()) / 2; + canvas.save(); + canvas.clipRect(left + 50, top + 50, left + 250, top + 210); canvas.drawBitmap(bitmap, left, top, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice02ClipPathView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice02ClipPathView.java index 06631c7..0cc700d 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice02ClipPathView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice02ClipPathView.java @@ -18,6 +18,7 @@ public class Practice02ClipPathView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Path path1, path2; public Practice02ClipPathView(Context context) { super(context); @@ -33,13 +34,25 @@ public Practice02ClipPathView(Context context, @Nullable AttributeSet attrs, int { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + path1 = new Path(); + path1.addCircle(point1.x + 200, point1.y + 200, 100, Path.Direction.CW); + path2 = new Path(); + path2.setFillType(Path.FillType.INVERSE_EVEN_ODD); + path2.addCircle(point2.x + 200, point2.y + 200, 100, Path.Direction.CCW); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.clipPath(path1); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.clipPath(path2); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice03TranslateView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice03TranslateView.java index c1cfe96..643eb88 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice03TranslateView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice03TranslateView.java @@ -38,7 +38,14 @@ public Practice03TranslateView(Context context, @Nullable AttributeSet attrs, in protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.translate(100, -100); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.translate(200, 100); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } \ No newline at end of file diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice04ScaleView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice04ScaleView.java index ddecb72..b4096e1 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice04ScaleView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice04ScaleView.java @@ -38,7 +38,14 @@ public Practice04ScaleView(Context context, @Nullable AttributeSet attrs, int de protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.scale(0.5f, 1.5f); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.scale(1.3f, 1.3f); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice05RotateView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice05RotateView.java index 0cd80a9..3487fa4 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice05RotateView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice05RotateView.java @@ -38,7 +38,15 @@ public Practice05RotateView(Context context, @Nullable AttributeSet attrs, int d protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.rotate(180, point1.x + 200, point1.y + 200); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.rotate(45, point2.x + 200, point2.y); + canvas.translate(200, -50); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } \ No newline at end of file diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice06SkewView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice06SkewView.java index f2b64bb..eb7d2b7 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice06SkewView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice06SkewView.java @@ -38,7 +38,14 @@ public Practice06SkewView(Context context, @Nullable AttributeSet attrs, int def protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.skew(0.5f, 0.5f); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.skew(-0.5f, 0.2f); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice07MatrixTranslateView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice07MatrixTranslateView.java index 3a9deba..bd3d569 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice07MatrixTranslateView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice07MatrixTranslateView.java @@ -1,9 +1,11 @@ package com.hencoder.hencoderpracticedraw4.practice; +import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Point; import android.support.annotation.Nullable; @@ -17,6 +19,7 @@ public class Practice07MatrixTranslateView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Matrix matrix1, matrix2; public Practice07MatrixTranslateView(Context context) { super(context); @@ -32,13 +35,27 @@ public Practice07MatrixTranslateView(Context context, @Nullable AttributeSet att { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + matrix1 = new Matrix(); + matrix2 = new Matrix(); } + @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + matrix1.reset(); + matrix1.postTranslate(200, 50); + canvas.concat(matrix1); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + matrix2.reset(); + matrix2.postTranslate(350, -50); + canvas.concat(matrix2); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice08MatrixScaleView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice08MatrixScaleView.java index ee167a0..f7fdf35 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice08MatrixScaleView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice08MatrixScaleView.java @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Point; import android.support.annotation.Nullable; @@ -17,6 +18,7 @@ public class Practice08MatrixScaleView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Matrix matrix1, matrix2; public Practice08MatrixScaleView(Context context) { super(context); @@ -32,13 +34,28 @@ public Practice08MatrixScaleView(Context context, @Nullable AttributeSet attrs, { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + matrix1 = new Matrix(); + matrix2 = new Matrix(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + //一定要重置,否则效果会叠加 + matrix1.reset(); + matrix1.postScale(0.5f, 0.8f); + canvas.concat(matrix1); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + //同上 + matrix2.reset(); + matrix2.postScale(0.9f, 1.3f); + canvas.concat(matrix2); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice09MatrixRotateView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice09MatrixRotateView.java index c1407fd..e8fda71 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice09MatrixRotateView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice09MatrixRotateView.java @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Point; import android.support.annotation.Nullable; @@ -17,6 +18,7 @@ public class Practice09MatrixRotateView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Matrix matrix1, matrix2; public Practice09MatrixRotateView(Context context) { super(context); @@ -32,13 +34,30 @@ public Practice09MatrixRotateView(Context context, @Nullable AttributeSet attrs, { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + matrix1 = new Matrix(); + matrix2 = new Matrix(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + matrix1.reset(); + matrix1.postRotate(180, + point1.x + bitmap.getWidth() / 2, + point1.y + bitmap.getHeight() / 2); + canvas.concat(matrix1); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + matrix2.reset(); + matrix2.postRotate(45, + point2.x + bitmap.getWidth() / 2, + point2.y + bitmap.getHeight() / 2); + canvas.concat(matrix2); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice10MatrixSkewView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice10MatrixSkewView.java index 3079e3b..91e5c84 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice10MatrixSkewView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice10MatrixSkewView.java @@ -4,6 +4,7 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Point; import android.support.annotation.Nullable; @@ -17,6 +18,7 @@ public class Practice10MatrixSkewView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Matrix matrix1, matrix2; public Practice10MatrixSkewView(Context context) { super(context); @@ -32,13 +34,28 @@ public Practice10MatrixSkewView(Context context, @Nullable AttributeSet attrs, i { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + matrix1 = new Matrix(); + matrix2 = new Matrix(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + matrix1.reset(); + matrix1.postSkew(0.8f, 0); + matrix1.postTranslate(-(point1.x - 100), 0); + canvas.concat(matrix1); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + matrix2.reset(); + matrix2.postSkew(-0.6f, 0); + matrix2.postTranslate(point2.x, 0); + canvas.concat(matrix2); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice11CameraRotateView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice11CameraRotateView.java index 06bfc9a..d0bd56a 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice11CameraRotateView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice11CameraRotateView.java @@ -3,7 +3,9 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Camera; import android.graphics.Canvas; +import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Point; import android.support.annotation.Nullable; @@ -17,6 +19,7 @@ public class Practice11CameraRotateView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Camera camera; public Practice11CameraRotateView(Context context) { super(context); @@ -32,13 +35,27 @@ public Practice11CameraRotateView(Context context, @Nullable AttributeSet attrs, { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + camera = new Camera(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + camera.save(); + camera.rotateX(45); + camera.applyToCanvas(canvas); + camera.restore(); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + camera.save(); + camera.rotateY(45); + camera.applyToCanvas(canvas); + camera.restore(); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice12CameraRotateFixedView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice12CameraRotateFixedView.java index 7f30dc3..41460a8 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice12CameraRotateFixedView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice12CameraRotateFixedView.java @@ -3,6 +3,7 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; +import android.graphics.Camera; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Point; @@ -17,6 +18,7 @@ public class Practice12CameraRotateFixedView extends View { Bitmap bitmap; Point point1 = new Point(200, 200); Point point2 = new Point(600, 200); + Camera camera; public Practice12CameraRotateFixedView(Context context) { super(context); @@ -32,13 +34,35 @@ public Practice12CameraRotateFixedView(Context context, @Nullable AttributeSet a { bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.maps); + camera = new Camera(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); + canvas.save(); + canvas.translate((point1.x + bitmap.getWidth() / 2), + (point1.y + bitmap.getHeight() / 2)); + camera.save(); + camera.rotateX(45); + camera.applyToCanvas(canvas); + camera.restore(); + canvas.translate(-(point1.x + bitmap.getWidth() / 2), + -(point1.y + bitmap.getHeight() / 2)); canvas.drawBitmap(bitmap, point1.x, point1.y, paint); + canvas.restore(); + + canvas.save(); + canvas.translate((point2.x + bitmap.getWidth() / 2), + point2.y + bitmap.getHeight() / 2); + camera.save(); + camera.rotateY(45); + camera.applyToCanvas(canvas); + camera.restore(); + canvas.translate(-(point2.x + bitmap.getWidth() / 2), + -(point2.y + bitmap.getHeight() / 2)); canvas.drawBitmap(bitmap, point2.x, point2.y, paint); + canvas.restore(); } } diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice13CameraRotateHittingFaceView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice13CameraRotateHittingFaceView.java index e0a77cb..57d3af2 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice13CameraRotateHittingFaceView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice13CameraRotateHittingFaceView.java @@ -47,6 +47,8 @@ public Practice13CameraRotateHittingFaceView(Context context, @Nullable Attribut animator.setDuration(5000); animator.setInterpolator(new LinearInterpolator()); animator.setRepeatCount(ValueAnimator.INFINITE); + + camera.setLocation(0, 0, 100); } @Override @@ -71,18 +73,15 @@ public void setDegree(int degree) { protected void onDraw(Canvas canvas) { super.onDraw(canvas); - int bitmapWidth = bitmap.getWidth(); - int bitmapHeight = bitmap.getHeight(); - int centerX = point.x + bitmapWidth / 2; - int centerY = point.y + bitmapHeight / 2; - camera.save(); matrix.reset(); camera.rotateX(degree); camera.getMatrix(matrix); camera.restore(); - matrix.preTranslate(-centerX, -centerY); - matrix.postTranslate(centerX, centerY); + matrix.preTranslate(-(point.x + bitmap.getWidth() / 2), + -(point.y + bitmap.getHeight() / 2)); + matrix.postTranslate((point.x + bitmap.getWidth() / 2), + (point.y + bitmap.getHeight() / 2)); canvas.save(); canvas.concat(matrix); canvas.drawBitmap(bitmap, point.x, point.y, paint); diff --git a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice14FlipboardView.java b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice14FlipboardView.java index 992d6e8..06bc52b 100644 --- a/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice14FlipboardView.java +++ b/app/src/main/java/com/hencoder/hencoderpracticedraw4/practice/Practice14FlipboardView.java @@ -41,6 +41,9 @@ public Practice14FlipboardView(Context context, @Nullable AttributeSet attrs, in animator.setInterpolator(new LinearInterpolator()); animator.setRepeatCount(ValueAnimator.INFINITE); animator.setRepeatMode(ValueAnimator.REVERSE); + + //避免呼脸 + camera.setLocation(0, 0, 100); } @Override @@ -73,6 +76,17 @@ protected void onDraw(Canvas canvas) { int y = centerY - bitmapHeight / 2; canvas.save(); + canvas.clipRect(0, 0, getWidth(), centerY); + canvas.drawBitmap(bitmap, x, y, paint); + canvas.restore(); + + canvas.save(); + + if (degree < 90) { + canvas.clipRect(0, centerY, getWidth(), getHeight()); + } else { + canvas.clipRect(0, 0, getWidth(), centerY); + } camera.save(); camera.rotateX(degree); @@ -82,6 +96,7 @@ protected void onDraw(Canvas canvas) { camera.restore(); canvas.drawBitmap(bitmap, x, y, paint); + canvas.restore(); } } diff --git a/build.gradle b/build.gradle index c2eea8e..b4fe719 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.0.0-beta1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 03d462a..9bb7531 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Jul 09 11:29:58 CST 2017 +#Tue Aug 15 21:01:05 CST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip