使用查看寻呼机android的封面流功能
我必须在我的应用程序中实现覆盖流功能,类似于 和 我已经试过了,很少有人试过。但一切都不如预期使用查看寻呼机android的封面流功能,android,android-viewpager,coverflow,Android,Android Viewpager,Coverflow,我必须在我的应用程序中实现覆盖流功能,类似于 和 我已经试过了,很少有人试过。但一切都不如预期 如何使用ViewPager实现这种类型的视图?我已经创建了我的类ZoomOutPageTransformer,该类正在实现PageTransformer,并使用setPageTransformer()方法将该集设置到寻呼机中。 请检查以下ZoomoutPagetTransformer.class- public class ZoomOutPageTransformer implements Page
如何使用ViewPager实现这种类型的视图?我已经创建了我的类
ZoomOutPageTransformer
,该类正在实现PageTransformer
,并使用setPageTransformer()
方法将该集设置到寻呼机中。
请检查以下ZoomoutPagetTransformer.class
-
public class ZoomOutPageTransformer implements PageTransformer {
private static float MIN_SCALE = 1f;
private static final float MIN_ALPHA = 0.7f;
public ZoomOutPageTransformer(boolean isZoomEnable) {
if (isZoomEnable) {
MIN_SCALE = 0.85f;
} else {
MIN_SCALE = 1f;
}
}
public void transformPage(View view, float position) {
int pageWidth = view.getWidth();
int pageHeight = view.getHeight();
float vertMargin = pageHeight * (1 - MIN_SCALE) / 2;
float horzMargin = pageWidth * (1 - MIN_SCALE) / 2;
view.setScaleX(MIN_SCALE);
view.setScaleY(MIN_SCALE);
if (position < -1) { // [-Infinity,-1)
// This page is way off-screen to the left.
view.setAlpha(MIN_ALPHA);
view.setTranslationX(horzMargin - vertMargin / 2);
} else if (position <= 1) { // [-1,1]
// Modify the default slide transition to shrink the page as well
float scaleFactor = Math.max(MIN_SCALE, 1 - Math.abs(position));
vertMargin = pageHeight * (1 - scaleFactor) / 2;
horzMargin = pageWidth * (1 - scaleFactor) / 2;
if (position < 0) {
view.setTranslationX(horzMargin - vertMargin / 2);
} else {
view.setTranslationX(-horzMargin + vertMargin / 2);
}
// Scale the page down (between MIN_SCALE and 1)
view.setScaleX(scaleFactor);
view.setScaleY(scaleFactor);
// Fade the page relative to its size.
view.setAlpha(MIN_ALPHA +
(scaleFactor - MIN_SCALE) /
(1 - MIN_SCALE) * (1 - MIN_ALPHA));
} else { // (1,+Infinity]
// This page is way off-screen to the right.
view.setAlpha(MIN_ALPHA);
view.setTranslationX(-horzMargin + vertMargin / 2);
}
}
}
在main.xml中
-
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/pager_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="#CCC"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:clipChildren="false"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_50"
android:layout_marginRight="@dimen/dimen_50" />
</FrameLayout>
</RelativeLayout>
这对我很有用。工作得很好……非常感谢,伙计@尼蒂什·斯利瓦斯塔瓦工作起来很有魅力。谢谢@Nitish(Y)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/pager_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:background="#CCC"
android:clipChildren="false">
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:clipChildren="false"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:layout_marginLeft="@dimen/dimen_50"
android:layout_marginRight="@dimen/dimen_50" />
</FrameLayout>
</RelativeLayout>