android 圆环菜单,Android旋转木马效果和圆形菜单旋转动画

本文介绍了如何在Android中实现圆环菜单和旋转木马效果,包括自定义View `RoundSpinView` 的代码实现,以及手势检测监听事件。通过示例代码展示了如何创建、旋转和响应用户触摸事件。
摘要由CSDN通过智能技术生成

本帅由于最近项目需要一种类似中国电信首页这样的特效,于是我就去下载了一个看了一下,还不错。我艹又在这扯犊子干哈,别tm浪灰我时间S比,代你们说了哈

首先看看中国电信首页(其实还有其他特效,不错这个app)

d57897194240

中国电信首页

没做过啊,刚开始自己想的是自定义一个布局里面装子控件按照圆形来排列,然后旋转这个布局,想着是没毛病啊,但是我这个人技术不咋地,自己敲估计是敲不出来了,先看看人家怎么写的吧,然后我们同事说这个就是旋转木马特效啊,我靠“旋转木马”感觉瞬间就高大上了

于是我就找了一下旋转木马的特效 找到如下这种的

d57897194240

旋转木马式

如果只需要这个的就不用往下看了,毕竟时间就是代码,代码就是钱啊

该项目的链接:非常方便的引用 去吧

然后感觉不对啊我要的洗过也没这么复杂啊

于是我就找到了这个东西,圆形的菜单,那咱们先看看他的真身是啥

d57897194240

就是这个

这个妖怪呢可以说是旋转,交换(两个点相互交换),事件监听那是样样精通啊

那么只需要这个东西的慢走不送

好吧,那看一下我修改后的妖孽吧

d57897194240

这啥玩意儿啊

好吧 开始我的搬运工表演

第一个就不说了,贼猛

第二个如果不想去下载的直接copy吧

这就是一个自定义VIew RoundSpinView.java

packagechege.zycf.com.testroate.view;

importandroid.content.Context;

importandroid.content.res.TypedArray;

importandroid.graphics.Bitmap;

importandroid.graphics.BitmapFactory;

importandroid.graphics.Canvas;

importandroid.graphics.Color;

importandroid.graphics.DashPathEffect;

importandroid.graphics.Paint;

importandroid.graphics.PaintFlagsDrawFilter;

importandroid.graphics.PathEffect;

importandroid.graphics.Rect;

importandroid.os.Handler;

importandroid.os.Message;

importandroid.util.AttributeSet;

importandroid.util.Log;

importandroid.view.GestureDetector;

importandroid.view.GestureDetector.SimpleOnGestureListener;

importandroid.view.MotionEvent;

importandroid.view.View;

importchege.zycf.com.testroate.R;

/**

* 圆盘式的view

*

*@authorboy

*

*/

public classRoundSpinViewextendsView {

privatePaintmPaint=newPaint();

privatePaintFlagsDrawFilterpfd;

private intstartMenu;//菜单的第一张图片的资源id

// stone列表

privateBigStone[]mStones;

// 数目

private static final intSTONE_COUNT=20;

// 圆心坐标

private intmPointX=0,mPointY=0;

// 半径

private intmRadius=0;

// 每两个点间隔的角度

private intmDegreeDelta;

private intmenuRadius;// 菜单的半径</

旋转木马布局效果     gradle    compile 'com.dalong:carrousellayout:1.0.0'or Maven    <dependency>       <groupId>com.dalong</groupId>       <artifactId>carrousellayout</artifactId>       <version>1.0.0</version>       <type>pom</type>     </dependency>xml:     <com.dalong.carrousellayout.CarrouselLayout            android:id="@ id/carrousel"            app:rotateDirection="anticlockwise"            app:r="200dp"            app:rotationTime="3000"            android:gravity="center"            android:layout_marginBottom="180dp"            android:layout_width="match_parent"            android:layout_height="match_parent">           <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" />               ...        </com.dalong.carrousellayout.CarrouselLayout>java:    CarrouselLayout carrousel= (CarrouselLayout) findViewById(R.id.carrousel);     carrousel.setR(width/3)//设置R的大小              .setAutoRotation(false)//是否自动切换              .setAutoRotationTime(1500);//自动切换的时间  单位毫秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值