如何在android中使用fancycoverflow获取位置

时间:2014-09-27 05:38:46

标签: android image position swipe coverflow

我已经从下面的链接实现了整个示例,但无法将特定图像的位置聚焦在中心位置。

https://github.com/davidschreiber/FancyCoverFlow

那么我应该为此做些什么呢?

我已经在我的课程中实现了以下代码:

MainActivity.java

    this.fancyCoverFlow.setAdapter(new FancyCoverFlowSampleAdapter());
    this.fancyCoverFlow.setUnselectedAlpha(1.0f);
    this.fancyCoverFlow.setUnselectedSaturation(0);
    this.fancyCoverFlow.setUnselectedScale(0);
    this.fancyCoverFlow.setSpacing(0);
    this.fancyCoverFlow.setMaxRotation(0);
    this.fancyCoverFlow.setScaleDownGravity(0.2f);
    this.fancyCoverFlow.setActionDistance(FancyCoverFlow.ACTION_DISTANCE_AUTO);

FancyCoverFlowSampleAdapter.class

public class FancyCoverFlowSampleAdapter extends FancyCoverFlowAdapter {

    @Override
    public int getCount() {
        return GlobalFields.arrlistFrames.length;
    }

    @Override
    public Integer getItem(int i) {
        return GlobalFields.arrlistFrames[i];
    }

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

    @Override
    public View getCoverFlowItem(int i, View reuseableView, ViewGroup viewGroup) {
        ImageView imageView = null;

        if (reuseableView != null) {
            imageView = (ImageView) reuseableView;
        } else {
            imageView = new ImageView(viewGroup.getContext());
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
            imageView.setLayoutParams(new FancyCoverFlow.LayoutParams(400, 500));
            GlobalFields.i = i;
            Log.e("FancyFlow adapter", "Position: " +i);
        }
        imageView.setImageResource(this.getItem(i));
        return imageView;
    }
}

我已经实现了两个java类,如果我将运行此代码,在图像的第一个位置它将显示输出,如位置:0 但是当我向右滑动图像时向左,在第二个图像位置,它会给我输出像位置:2 ,而这是错误的输出。

所以它将直接从位置0 移动到位置2 ,所以我需要你的帮助才能使它正确,点击按钮我必须通过这个形状或图像到下一个活动。

我们将非常感谢您的宝贵意见和额外努力。

1 个答案:

答案 0 :(得分:4)

您需要为setOnItemSelectedListener设置。参考下面的代码

this.fancyCoverFlow.setOnItemSelectedListener(new OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view,
                int position, long id) {
             Log.d("fancyFlowCurPos ", String.valueOf(position));
        }

        @Override
        public void onNothingSelected(AdapterView<?> parent) {

        }
    });