Skip to content

For Android. CoverFlowView can make your custom views (also image) show as CoverFlow effect. CoverFlowView可以以CoverFlow效果展示一系列自定义view,包括图片。

Notifications You must be signed in to change notification settings

missmess/CoverFlowView

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CoverFlowView

基于ImageCoverFlow,但是有较大改动,在ImageCoverFlow的基础上增加了 对自定义布局的支持,可以支持任意布局。同时增加了一些其他支持,并修复了一些bug,提升绘制速度。

Based on ImageCoverFlow, add support to custom layout in CoverFlow, fix some bugs, add other function.


GIF预览:

gif



主要功能介绍

  • 支持自定义布局。
  • 支持多种view切换方式。
  • 支持view on top, top click, long click监听。
  • 支持notify刷新数据源和重设适配器。

如何添加到项目中

本library已经支持Gradle直接添加远程依赖。Android Studio用户,只需要在项目的build.gradle中添加该dependencies:

compile "com.missmess.coverflowview:coverflowview:1.2.8"


###如何使用

使用非常简单。仅需几句代码。用法如下:

1、在xml中定义布局。
<com.missmess.coverflowview.CoverFlowView
    android:id="@+id/coverflow_view"
    android:layout_width="match_parent"
    android:layout_height="180dp"
    app:loopMode="true"
	app:visibleViews="3"/>
2、创建adapter。继承于ACoverFlowAdapter。adapter的实现与RecyclerView.Adapter完全相同。
public class MyCoverFlowAdapter extends ACoverFlowAdapter<MyCoverFlowAdapter.ViewHolder> {
    @Override
    public int getCount() {
        return 0;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int type) {
        return null;
    }

    @Override
    public void onBindViewHolder(ViewHolder vh, int position) {
    }

    class ViewHolder extends ACoverFlowAdapter.ViewHolder {
        public ViewHolder(View itemView) {
            super(itemView);
        }
    }
}
3、为CoverFlowView设置adapter。
CoverFlowView coverflow_view = (CoverFlowView) findViewById(R.id.coverflow_view);
MyCoverFlowAdapter adapter = new MyCoverFlowAdapter();
coverflow_view.setAdapter(adapter);

其它API

1、切换CoverFlow
  • 你可以通过滑动切换,也可以通过点击CoverFlow的左右两侧实现快速切换。但点击切换需要确保clickSwitchEnable为 true。

    通过coverFlowView.setClick2SwitchEnabled(boolean enable)方法设置是否启用点击左右侧切换。

  • 如果你想在在代码中切换view。可以有如下的几种方法:

    1. gotoPrevious():当前位置往前切换一个。

    2. gotoForward():当前位置往后切换一个。

    3. setSelection(int selection, boolean smooth):切换到指定的位置,smooth为true则显示过渡动画,为false 则快速切换。

2、更新数据
  • 你可以直接使用adapter.notifyDataSetChanged()来刷新你的适配器数据。
  • 也可以使用新的adapter:
coverflow_view.setAdapter(new NewCoverFlowAdapter());
3、设置监听

CoverFlowView提供三种lister:

  • setOnViewOnTopListener:当任意一个新的view停止滑动后,位于顶部。就会调用。这个是最常用的。
  • setOnTopViewClickListener:当位于顶部的view被点击后调用。
  • setOnTopViewLongClickListener:当位于顶部的view接收了long click事件时调用。
4、循环模式

使用setLoopMode(boolean)方法或者在xml中定义loopMode来启用和关闭循环模式。 在循环模式下,将可以无限向左和向右滑动,item将会循环显示。关闭后,滑动到第一个或者最后一个item,将 不能继续向左或向右滑动。


截图

image1 image2 image3


未完成工作

目前所有工作在onLayout中完成。应该把addView和transform children的工作给剥离出onLayout中。这样可以 提高性能。

关于作者

在使用中有任何问题,欢迎反馈给我,可以用以下联系方式跟我交流:


CopyRight:missmess

About

For Android. CoverFlowView can make your custom views (also image) show as CoverFlow effect. CoverFlowView可以以CoverFlow效果展示一系列自定义view,包括图片。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages