diff options
author | David-Development <david-dev@live.de> | 2014-08-31 16:55:13 +0400 |
---|---|---|
committer | David-Development <david-dev@live.de> | 2014-08-31 16:55:13 +0400 |
commit | 4bde4f5b7fbd9672ffcedb76daf82c5b0be384ac (patch) | |
tree | fd6dec3bed9d0708629410c867ee7ab52b292536 /News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java | |
parent | 451ffb2625d1553222ee8e40cec10f394b8dbf3a (diff) |
Improve podcast functionality
Diffstat (limited to 'News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java')
-rw-r--r-- | News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java | 64 |
1 files changed, 62 insertions, 2 deletions
diff --git a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java index 650869c4..54ac33ee 100644 --- a/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java +++ b/News-Android-App/src/main/java/de/luhmer/owncloudnewsreader/view/PodcastSlidingUpPanelLayout.java @@ -4,13 +4,15 @@ import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; +import android.view.animation.Animation; +import android.view.animation.Transformation; import com.sothree.slidinguppanel.SlidingUpPanelLayout; /** * Created by David on 21.06.2014. */ -public class PodcastSlidingUpPanelLayout extends SlidingUpPanelLayout{ +public class PodcastSlidingUpPanelLayout extends SlidingUpPanelLayout { public PodcastSlidingUpPanelLayout(Context context) { super(context); } @@ -26,7 +28,6 @@ public class PodcastSlidingUpPanelLayout extends SlidingUpPanelLayout{ @Override public boolean onInterceptTouchEvent(MotionEvent ev) { return super.onInterceptTouchEvent(ev); - //return isDragViewHit((int)ev.getX(), (int)ev.getY()); } @@ -61,4 +62,63 @@ public class PodcastSlidingUpPanelLayout extends SlidingUpPanelLayout{ screenY >= viewLocation[1] && screenY < viewLocation[1] + v.getHeight(); } + + + + + + + + public static void expand(final View v) { + v.measure(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); + final int targtetHeight = v.getMeasuredHeight(); + + v.getLayoutParams().height = 0; + v.setVisibility(View.VISIBLE); + Animation a = new Animation() + { + @Override + protected void applyTransformation(float interpolatedTime, Transformation t) { + v.getLayoutParams().height = interpolatedTime == 1 + ? LayoutParams.WRAP_CONTENT + : (int)(targtetHeight * interpolatedTime); + v.requestLayout(); + } + + @Override + public boolean willChangeBounds() { + return true; + } + }; + + // 1dp/ms + a.setDuration((int)(targtetHeight / v.getContext().getResources().getDisplayMetrics().density)); + v.startAnimation(a); + } + + public static void collapse(final View v) { + final int initialHeight = v.getMeasuredHeight(); + + Animation a = new Animation() + { + @Override + protected void applyTransformation(float interpolatedTime, Transformation t) { + if(interpolatedTime == 1){ + v.setVisibility(View.GONE); + }else{ + v.getLayoutParams().height = initialHeight - (int)(initialHeight * interpolatedTime); + v.requestLayout(); + } + } + + @Override + public boolean willChangeBounds() { + return true; + } + }; + + // 1dp/ms + a.setDuration((int)(initialHeight / v.getContext().getResources().getDisplayMetrics().density)); + v.startAnimation(a); + } } |