FancyCoverFlow

一、 CoverFlow这个库导入到工程中调整一下版本。

 

、布局中使用FancyCoverFlow控件

 

<?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"

android:background="#00bbff">

 

<com.dalong.francyconverflow.FancyCoverFlow

    android:id="@+id/fancy_cover_flow_main"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:layout_centerInParent="true" />

 

</RelativeLayout>

 

设置适配器

//FancyCoverFlow设置适配器
FindFancyCoverFlowAdapter findFancyCoverFlowAdapter = new FindFancyCoverFlowAdapter(this, pictures);
fancy_cover_flow_main.setAdapter(findFancyCoverFlowAdapter);
findFancyCoverFlowAdapter.notifyDataSetChanged();

 

适配器(和viewPager很像

public class FindFancyCoverFlowAdapter extends FancyCoverFlowAdapter {
    private final Context mContext;
    private final int[] mPictures;

    public FindFancyCoverFlowAdapter(Context context, int[] pictures) {
        mContext = context;
        mPictures = pictures;
    }

    @Override
    public View getCoverFlowItem(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = View.inflate(mContext, R.layout.item_fancy_cover_flow, null);

            //设置显示图片所占宽度
            
WindowManager wm = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);
            int width = wm.getDefaultDisplay().getWidth();
            convertView.setLayoutParams(new FancyCoverFlow.LayoutParams(width * 2 / 3, FancyCoverFlow.LayoutParams.WRAP_CONTENT));

            holder.iv_item = (ImageView) convertView.findViewById(R.id.iv_item);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        //获取当前条目的数据
        
int mPicture = mPictures[position % mPictures.length];

        //设置数据
        
holder.iv_item.setImageResource(mPicture);

        return convertView;
    }

    @Override
    public int getCount() {
        return 1000;
    }

    @Override
    public Object getItem(int position) {
        return mPictures[position];
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    static class ViewHolder {
        ImageView iv_item;
    }
}

 

最后调整一下效果就可以了

 

//设置参数
fancy_cover_flow_main.setUnselectedAlpha(0.5f);//未被选中时的透明度
fancy_cover_flow_main.setUnselectedSaturation(0.5f);//设置未被选中的饱和度
fancy_cover_flow_main.setUnselectedScale(0.2f);//设置未被选中所占的比例
fancy_cover_flow_main.setSpacing(-130);//设置child间距
fancy_cover_flow_main.setMaxRotation(0);//设置最大旋转度数
fancy_cover_flow_main.setScaleDownGravity(0.5f);//非选中的重心偏移,负的向上
fancy_cover_flow_main.setActionDistance(FancyCoverFlow.ACTION_DISTANCE_AUTO);//作用距离

//设置从第一张图片开始显示
int num = 1000 / 2 % pictures.length;
int selectPosition = 1000 / 2 - num;
fancy_cover_flow_main.setSelection(selectPosition);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值