idtk / blog Goto Github PK
View Code? Open in Web Editor NEWBlog备份
Home Page: http://www.idtkm.com
Blog备份
Home Page: http://www.idtkm.com
如果ontouchevent里反回了 super.onTouchEvent(event); 貌似就不能消耗触摸事件,然后手指再怎么滑动onInterceptTouchEvent都只能检测到ACTION_DOWN
首先感谢下po主的文章,学习豆瓣动画那篇,在小米2s上画点笔触一直时方形的,其他机子正常圆形的
能分享一下博客源码吗,我想向大神学习一下,sincerely
你好,这个项目非常好。能介绍一下吗,用到的什么技术,还有文件之间的关联,我看不太懂
基本思路是抽取重复代码,让逻辑更清晰。
方案二是在方案一的基础上做的,虽然方案二代码更加长一点,但个人感觉更好理解。
private void doubanAnimator(Canvas canvas, Paint mPaint){
mPaint.setStyle(Paint.Style.STROKE);//描边
mPaint.setStrokeCap(Paint.Cap.ROUND);//圆角笔触
mPaint.setColor(Color.rgb(97, 195, 109));
mPaint.setStrokeWidth(15);
float point = Math.min(mViewWidth,mViewWidth)*0.06f/2;
float r = point*(float) Math.sqrt(2);
RectF rectF = new RectF(-r,-r,r,r);
canvas.save();
// rotate
if (animatedValue>=135){
canvas.rotate(animatedValue-135);
}
// draw mouth
if (animatedValue<135){
canvas.drawArc(rectF,animatedValue+5,170+animatedValue/3,false,mPaint);
}else if (animatedValue<270){
canvas.drawArc(rectF,135+5,170+animatedValue/3,false,mPaint);
}else if (animatedValue<630){
canvas.drawArc(rectF,135+5,260-(animatedValue-270)/5,false,mPaint);
}else if (animatedValue<720){
canvas.drawArc(rectF,135-(animatedValue-630)/2+5,260-(animatedValue-270)/5,false,mPaint);
}else{
canvas.drawArc(rectF,135-(animatedValue-630)/2-(animatedValue-720)/6+5,170,false,mPaint);
}
// draw eye
canvas.drawPoints(new float[]{
-point,-point
,point,-point
},mPaint);
canvas.restore();
}
private void doubanAnimator2(Canvas canvas, Paint mPaint){
mPaint.setStyle(Paint.Style.STROKE);//描边
mPaint.setStrokeCap(Paint.Cap.ROUND);//圆角笔触
mPaint.setColor(Color.rgb(97, 195, 109));
mPaint.setStrokeWidth(15);
float point = Math.min(mViewWidth,mViewWidth)*0.06f/2;
float r = point*(float) Math.sqrt(2);
RectF rectF = new RectF(-r,-r,r,r);
canvas.save();
// rotate
if (animatedValue>=135){
canvas.rotate(animatedValue-135);
}
// draw mouth
float startAngle=0, sweepAngle=0;
if (animatedValue<135){
startAngle = animatedValue +5;
sweepAngle = 170+animatedValue/3;
}else if (animatedValue<270){
startAngle = 135+5;
sweepAngle = 170+animatedValue/3;
}else if (animatedValue<630){
startAngle = 135+5;
sweepAngle = 260-(animatedValue-270)/5;
}else if (animatedValue<720){
startAngle = 135-(animatedValue-630)/2+5;
sweepAngle = 260-(animatedValue-270)/5;
}else{
startAngle = 135-(animatedValue-630)/2-(animatedValue-720)/6+5;
sweepAngle = 170;
}
canvas.drawArc(rectF,startAngle,sweepAngle,false,mPaint);
// draw eye
canvas.drawPoints(new float[]{
-point,-point
,point,-point
},mPaint);
canvas.restore();
}
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.