From fd8d40e536d17dad2d9b965b2a3c3284460df639 Mon Sep 17 00:00:00 2001 From: Christian Fuentes Date: Thu, 18 Feb 2016 13:37:59 +0100 Subject: [PATCH 1/2] Add new scale type Add ScaleType onlyScaleDown for Picasso property --- .../daimajia/slider/library/SliderTypes/BaseSliderView.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java index 8ad1d35..8cbc024 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java @@ -55,7 +55,7 @@ public abstract class BaseSliderView { private ScaleType mScaleType = ScaleType.Fit; public enum ScaleType{ - CenterCrop, CenterInside, Fit, FitCenterCrop + CenterCrop, CenterInside, Fit, FitCenterCrop, OnlyScaleDown } protected BaseSliderView(Context context) { @@ -241,6 +241,9 @@ public void onClick(View v) { case CenterInside: rq.fit().centerInside(); break; + case OnlyScaleDown: + rq.onlyScaleDown(); + break; } rq.into(targetImageView,new Callback() { From 0fde30660cc5f404cd3a8c7eae8dfe9f37d5b9c1 Mon Sep 17 00:00:00 2001 From: Christian Fuentes Date: Thu, 18 Feb 2016 14:12:51 +0100 Subject: [PATCH 2/2] Add dimensions to resize image in Picasso onlyScaleDown requires a resize, I've added the properties and the setter to specify to which dimensions we have to resize --- .../slider/library/SliderTypes/BaseSliderView.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java index 8cbc024..ef7ee0b 100644 --- a/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java +++ b/library/src/main/java/com/daimajia/slider/library/SliderTypes/BaseSliderView.java @@ -54,6 +54,14 @@ public abstract class BaseSliderView { */ private ScaleType mScaleType = ScaleType.Fit; + private int resizeWidth = -1; + private int resizeHeight = -1; + + public void setResizeDimensions(int resizeWidth, int resizeHeight) { + this.resizeHeight = resizeHeight; + this.resizeWidth = resizeWidth; + } + public enum ScaleType{ CenterCrop, CenterInside, Fit, FitCenterCrop, OnlyScaleDown } @@ -242,7 +250,11 @@ public void onClick(View v) { rq.fit().centerInside(); break; case OnlyScaleDown: - rq.onlyScaleDown(); + if (resizeWidth == -1 && resizeHeight == -1) { + throw new IllegalArgumentException("At least one dimension has to be a positive number"); + } + rq.resize(resizeWidth, resizeHeight) + .onlyScaleDown(); break; }