Android实现360手机助手TabHost的波纹效果

现在新版360手机帮手的界面都做得挺美丽的,在切换底部导航时的波纹作用也很美观,刚好最近看了个开源项目才了解到本来Drawable做动画作用也怎样好用,所以就模仿360完成了下带波纹的TabHost

先来看一下完成后的作用:

Android完成360手机帮手TabHost的波纹作用

阐明一下完成关键:

1. 由于咱们项目之前用的是FragmentTabHost,所以我直接承继FragmentTabHost来完成动画作用更便利;

2. 波纹动画的完成其实是自定义带动画作用的Drawable,然后将Drawable设置为Tab菜单的布景;

3. 其它的便是一些Tab菜单切换的处理了。

一. 自定义波纹Drawable

自定义Drawable只需承继Drawable并完成以下4个办法,一起完成Animatable接口:

[java]view plaincopy

publicclassRippleDrawableextendsDrawableimplementsAnimatable{

@Override

publicvoiddraw(Canvascanvas){

// 绘图

}

@Override

publicvoidsetAlpha(intalpha){

// 设置透明度

}

@Override

publicvoidsetColorFilter(ColorFiltercolorFilter){

// 设置色彩过滤

}

@Override

publicintgetOpacity(){

// 设置色彩格局

returnPixelFormat.RGBA_8888;

}

@Override

publicvoidstart(){

//发动动画

}

@Override

publicvoidstop(){

//中止动画

}

@Override

publicbooleanisRunning(){

// 判别动画是否运转

returnfalse;

}

}

这几个办法中最重要的便是draw()办法了,信任自定义过View的都知道咱们图形便是在这儿制作,这儿也相同,其它办法在这儿影响不大,最终一个办法用来设置Drawable的色彩格局。要完成动画Drawable需求完成Animatable接口,并完成3个办法如下,其实不完成这个接口也能做动画作用,但仍是完成比较好。

 

下面是整个波纹Drawable的完成代码

[java]view plaincopy

/**

*Createdbylongon2016/6/27.

*波纹Drawable

*/

publicclassRippleDrawableextendsDrawableimplementsAnimatable{

/**

*3种形式:左面、中心和右边波纹

*/

publicstaticfinalintMODE_LEFT=1;

publicstaticfinalintMODE_MIDDLE=2;

publicstaticfinalintMODE_RIGHT=3;

privateintmMode=MODE_MIDDLE;

//前风光和后风光画笔

privatePaintmPaintFront;

privatePaintmPaintBehind;

//用来制作扇形的矩形框

privateRectFmRect;

//方针View的宽高的一半

privateintmHalfWidth;

privateintmHalfHeight;

//分散半径

privateintmRadius;

//前风光和布风光的切割间隔

privateintmDivideSpace;

//分散满视图需求的间隔,中点到斜角的间隔

privateintmFullSpace;

//动画操控

privateValueAnimatormValueAnimator;

publicRippleDrawable(intfrontColor,intbehindColor,intmode){

mPaintFront=newPaint(Paint.ANTI_ALIAS_FLAG);

mPaintFront.setColor(frontColor);

mPaintBehind=newPaint(Paint.ANTI_ALIAS_FLAG);

mPaintBehind.setColor(behindColor);

mRect=newRectF();

mMode=mode;

}

@Override

publicvoiddraw(Canvascanvas){

if(mRadius>mHalfWidth){

intcount=canvas.save();

canvas.drawCircle(mHalfWidth,mHalfHeight,mHalfWidth,mPaintBehind);

canvas.restoreToCount(count);

count=canvas.save();&

资源下载此资源下载价格为10积分,νìρ免费,请先

如遇到链接失效请提交工单处理。

【下载提示】

1. 本站30000+源码及视频教程,除了热门商业代售区源码及课程外,只要有下载按钮的,终/身νìρ都可以免费下载。

2. 本站源码及教程来自30多个渠道采购,资源描述为转载资源站点内容,本站没有精力一一测试,可能搭建失败。

3. 本站开通数十站点会/员,资源过多,大部分无法亲自测试,源码有可能存在缺\\\\陷或者不完整的风险,仅供参考&研究。确认购买视为接受该风险,由于源码具有可复\\\\制性,不接受任何理由退\\\\款!!!

4. 本站使用在线支付,付款完毕后,积分自动到账。

5. 充积分比例:1:1。

6. 所有源码包含安装教程与否,请仔细观看资源描述。

7. 所有源码不提供代安装搭建,如有疑问请提提交工单。

资源下载
下载需要:10 积分
νìρ特权:免费

如遇到链接失效请提交工单处理。

【下载提示】

1. 本站30000+源码及视频教程,除了热门商业代售区源码及课程外,只要有下载按钮的,终/身νìρ都可以免费下载。

2. 本站源码及教程来自30多个渠道采购,资源描述为转载资源站点内容,本站没有精力一一测试,可能搭建失败。

3. 本站开通数十站点会/员,资源过多,大部分无法亲自测试,源码有可能存在缺\\\\陷或者不完整的风险,仅供参考&研究。确认购买视为接受该风险,由于源码具有可复\\\\制性,不接受任何理由退\\\\款!!!

4. 本站使用在线支付,付款完毕后,积分自动到账。

5. 充积分比例:1:1。

6. 所有源码包含安装教程与否,请仔细观看资源描述。

7. 所有源码不提供代安装搭建,如有疑问请提提交工单。

Android实现360手机助手TabHost的波纹效果原文链接:https://www.qwzy8.com/28751.html

广告位招租

评论0

请先

           
1,如有问题请前往用户中心提交工单,12小时内回复!
2,投稿优质资源可获得最长本站置顶广告位推荐,收益100%归作者所有,可提现!
3,欢迎发布其他站点购买的各类源码教程资源,支持置换本站各类资源!
没有账号? 注册  忘记密码?