Android的现代转盘图书馆

ter*_*es3 11 android carousel

是否有可用于Carousel动画图像的

我找到了http://www.androidviews.net/2012/10/android-coverflow/ ; https://code.google.com/p/android-coverflow/但这个库/代码段使用扩展了gallay(在API级别16(4.1.2)中不推荐使用Gallery类),那么是否有任何(现代)库?也许与毕加索结合?

Muh*_*had 12

这是CarouselView Github LinkAndroid Arsenal的免费链接

摇篮:

compile 'com.synnapps:carouselview:0.0.7'
Run Code Online (Sandbox Code Playgroud)

Maven的:

<dependency>
 <groupId>com.synnapps</groupId> 
 <artifactId>carouselview</artifactId>
 <version>0.0.7</version>
 <type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)

用法:
在布局中包含以下代码:

<com.synnapps.carouselview.CarouselView
    android:id="@+id/carouselView"
    android:layout_width="match_parent"
    android:layout_height="200dp"
    app:fillColor="#FFFFFFFF"
    app:pageColor="#00000000"
    app:radius="6dp"
    app:slideInterval="3000"
    app:strokeColor="#FF777777"
    app:strokeWidth="1dp"/>
Run Code Online (Sandbox Code Playgroud)

在您的活动中加入以下代码:

public class SampleCarouselViewActivity extends AppCompatActivity {

CarouselView carouselView;

int[] sampleImages = {R.drawable.image_1, R.drawable.image_2, R.drawable.image_3, R.drawable.image_4, R.drawable.image_5};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sample_carousel_view);

    carouselView = (CarouselView) findViewById(R.id.carouselView);
    carouselView.setPageCount(sampleImages.length);

    carouselView.setImageListener(imageListener);
}

ImageListener imageListener = new ImageListener() {
    @Override
    public void setImageForPosition(int position, ImageView imageView) {
        imageView.setImageResource(sampleImages[position]);
    }
};
Run Code Online (Sandbox Code Playgroud)

}

如果要添加自定义视图,请实现ViewListener.

public class SampleCarouselViewActivity extends AppCompatActivity {

CarouselView customCarouselView;
int NUMBER_OF_PAGES = 5;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sample_carousel_view);

    customCarouselView = (CarouselView) findViewById(R.id.customCarouselView);
    customCarouselView.setPageCount(NUMBER_OF_PAGES);
    // set ViewListener for custom view 
    customCarouselView.setViewListener(viewListener);
}

ViewListener viewListener = new ViewListener() {

    @Override
    public View setViewForPosition(int position) {
        View customView = getLayoutInflater().inflate(R.layout.view_custom, null);
        //set view attributes here

        return customView;
    }
};
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问github链接


Dev*_*nom 7

我已经尝试了很多寻找Carousel的替代品.我终于找到了完美的替代品.

InfiniteCycleViewPager

这就是Carousel库所做的.

我修改它来加载SD卡而不是Drawables的图像.

作品非常好.

如果您仍在使用它并需要任何帮助,请与我联系.


pha*_*raa 6

我在搜索时没有找到任何这样的库,但是在制作我自己的应用程序并使用a ViewPager来显示片段时,我已经实现了我自己的实现类ViewPager.PageTransformer.

虽然你已经要求一个图书馆了,但我遇到了类似的情况,但最终发现它很容易为它创建我自己的课程,所以你也可以.我的指导来自Google Developer文档中的使用ViewPager for Screen Slides.这是我的代码:

public class CarouselPageTransformer implements ViewPager.PageTransformer {
    @Override
    public void transformPage(View page, float position) {
        float scaleFactor = 0.5f;
        float rotationFactor = 20;

        if (position < 0) {
            page.setRotationY(rotationFactor * -position);
            float scale = 1 + scaleFactor * position;
            page.setScaleX(scale);
            page.setScaleY(scale);

        } else {
            page.setRotationY(rotationFactor * -position);
            float scale = 1 - scaleFactor * position;
            page.setScaleX(scale);
            page.setScaleY(scale);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

托管转换的活动然后调用:

viewPager.setPageTransformer(true, new CarouselPageTransformer());

此代码将ViewPager片段定位到可见屏幕的两侧,但您可以轻松地将它们定位为可见,例如在您在问题中提供的链接中.

请注意所需的最低SDK; 来自以下文件ViewPager.PageTransform:

由于属性动画仅支持从Android 3.0开始直播,因此将忽略在早期平台版本上在ViewPager上设置PageTransformer.