Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
Conflicts:
	library/src/main/java/com/fmsirvent/ParallaxEverywhere/PEWImageView.java
  • Loading branch information
alexanderbezverhni committed Jun 30, 2015
2 parents 2fc69fe + 677209c commit ac4b6a1
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ private void checkAttributes(AttributeSet attrs) {

float factor = arr.getFloat(R.styleable.PEWAttrs_factor, FACTOR_DEFAULT);
if (factor != FACTOR_DEFAULT)
setFactor(factor);
setFactor(factor);

reverseX = false;
reverseY = false;
Expand Down Expand Up @@ -224,37 +224,36 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
break;
}

scrollSpaceY = getScrollSpace(vheight, dnewHeight, factor);
scrollSpaceX = getScrollSpace(vwidth, dnewWidth, factor);
scrollSpaceY = getScrollSpace(vheight, dnewHeight, factor);
scrollSpaceX = getScrollSpace(vwidth, dnewWidth, factor);
}
applyParallax();
}

private float getScrollSpace(int viewEdgeSize, float imageEdgeSize, float factor){
if (viewEdgeSize > imageEdgeSize){
return 0;
}
private float getScrollSpace(int viewEdgeSize, float imageEdgeSize, float factor){
if (viewEdgeSize > imageEdgeSize){
return 0;
}

float maxScrollSpace = imageEdgeSize - viewEdgeSize;
if (factor == FACTOR_DEFAULT) {
return maxScrollSpace;
}
float maxScrollSpace = imageEdgeSize - viewEdgeSize;
if (factor == FACTOR_DEFAULT) {
return maxScrollSpace;
}

float factored = viewEdgeSize * (factor - 1.0f);
return Math.min(factored, maxScrollSpace);
}
float factored = viewEdgeSize * (factor - 1.0f);
return Math.min(factored, maxScrollSpace);
}

private void parallaxAnimation() {
initSizeScreen();

applyParallax();

}

private void initSizeScreen() {
WindowManager wm = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR2) {
Point size = new Point();
display.getSize(size);
screenHeight = size.y;
Expand Down Expand Up @@ -298,15 +297,15 @@ private void applyParallax() {
}

private void setMyScrollX(int value) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
setScrollX(value);
} else {
scrollTo(value, getScrollY());
}
}

private void setMyScrollY(int value) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
setScrollY(value);
} else {
scrollTo(getScrollX(),value);
Expand Down Expand Up @@ -349,6 +348,11 @@ public void setBlockParallaxY(boolean blockParallaxY) {
this.blockParallaxY = blockParallaxY;
}

@Override
public void scrollTo(int x, int y) {
super.scrollTo(isBlockParallaxX() ? 0 : x, isBlockParallaxY() ? 0 : y);
}

/**
* Limit parallax distance to some relative value, to make parallax animation more gentle.<br>
* Example: for an ImageView with 400x300 dimensions, we set an image with 400x1000 dimensions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -280,4 +280,9 @@ public boolean isBlockParallaxY() {
public void setBlockParallaxY(boolean blockParallaxY) {
this.blockParallaxY = blockParallaxY;
}

@Override
public void scrollTo(int x, int y) {
super.scrollTo(isBlockParallaxX() ? 0 : x, isBlockParallaxY() ? 0 : y);
}
}

0 comments on commit ac4b6a1

Please sign in to comment.