Git Product home page Git Product logo

looprotaryswitch's Introduction

介绍

3D旋转木马容器控件,可以无限循环,自动旋转(方向分顺时针和逆时针),可以手势切换或者点击切换。

效果图

image

如何使用

在你的项目Gradle 添加

 compile 'com.dalong:loopview:1.0.4'

或者直接引入库文件

1.0.4版本

 1、完善点击切换功能。

1.0.2版本

 1、增加方向设置.

1.0.1版本

 1、优化代码。
 2、增加自动旋转方向设置

1.0.0版本

 1、支持3d旋转。
 2、支持自定义旋转。
 3、点击3d切换,触摸滑动3d切换

配置view

布局xml里:

    <com.dalong.library.view.LoopRotarySwitchView
            android:id="@+id/mLoopRotarySwitchView"
            android:layout_width="fill_parent"
            android:gravity="center"
            android:layout_weight="1"
            app:direction="right"
            android:layout_height="0dp">
            <ImageView
                android:src="@mipmap/image1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <ImageView
                android:src="@mipmap/image2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <ImageView
                android:src="@mipmap/image3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
            <ImageView
                android:src="@mipmap/image4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" />
        </com.dalong.library.view.LoopRotarySwitchView>

代码设置:

mLoopRotarySwitchView
               .setR(300)//设置R的大小
               .setAutoRotation(true)//是否自动切换
               .setAutoScrollDirection(LoopRotarySwitchView.AutoScrollDirection.left)//切换方向
               .setAutoRotationTime(2000);//自动切换的时间  单位毫秒 

looprotaryswitch's People

Contributors

yixiaolunhui avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

looprotaryswitch's Issues

在点中item 然后滑动一定距离然后放开 会出现item错乱的问题

这个问题出现的原因是因为点击item自动 把点击的item转到前面,但是因为点击的时候滑动了一定距离所以造成滑动的最终点计算错误造成的,修复只需要把item 的点击事件去掉 or 在修改如下代码

/** * 设置指定位置 * * @param pos */ public void setSelectItem(int pos) { int count = getChildCount(); int currentIndex = calculateItem(); if (currentIndex == pos) { return; } //目标切换的view View targetView = getChildAt(pos); float perAngle; //当前位置和目标位置的差值(不是直接相减 而是位置相差多少个距离) int difPos; if (targetView.getTranslationX() >= 0) {//在右边 if (pos >= currentIndex) { difPos = Math.abs(pos - currentIndex); } else { difPos = Math.abs(pos + count - currentIndex); } perAngle = 360f / size; } else {//在左边 if (currentIndex >= pos) { difPos = Math.abs(currentIndex - pos); } else { difPos = Math.abs(currentIndex + count - pos); } perAngle = -360f / size; } float finall = angle + perAngle * difPos; //修复点击会出现错乱的问题 finall= finall- finall%perAngle; AnimRotationTo(finall, null); }

图片重叠在一块了

您好,我尝试在代码中动态添加view,发现图片全部重叠在一个位置,请指教

添加刷新图片遇到的bug

removeallviews之后,再重新添加,只有一张图片。不removeallviews,而是直接等两秒后,再重新添加,旋转图片后面有一张静止不动的图片。刚才不好意思,写到wiki里面去了

demo龙,得改进哦

你这个,其实可以优化更好的
不要再 layout下面去重新布局。
直接在
protected void dispatchDraw(GLCanvas glCanvas)绘制
这样才速度更快,一旦你的 旋转的View过于复杂
就会明显卡顿了
这个时候最好配置,缓存了
view图片缓存来绘制

为什么addview没反应

for (int j = 0; j < petList.size(); j++) {
View view = View.inflate(PetCountActivity.this, R.layout.item_pet, null);
loopRotarySwitchView.addView(view);
}

我用addview,也设置了点击事件和选择时间,发现只有一个view,而且不能旋转,点击也没反应,什么回事?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.