吴嘉俊(Stef)高级讲师
拥有多年的Java开发经验,CTO,EasyJF开源团队创始人之一、负责
EasyJWeb项目的开发和维护。曾在国内多家大型软件公司负责公司内部框架的开发和维护,为多个大中型公司做过架构和技术咨询。曾组织开发了蓝源
装饰行业ERP、美国EMR、蓝源服装行业连锁管理系统、蓝源SaaS服务平台、蓝源Eloan互联网金融综合解决方案等系统产品。具有非常丰富项目开发和
管理经验。
擅长技术:主流JavaEE,Android技术,对 Spring、JPA、Hibernate、
MyBatis、Struts2、MongoDB、Redis等技术领域有深入研究。
吴老师有丰富的Java培训经验和IT培训行业顾问经验;授课激情,有感染力
,注重对底层原理的剖析和理解;善于培养学生对编程的兴趣;
Java开发的应该如何掌握上述相关技术?
一:首先,有这样的一种情况很常见,对于想自学Java开发的人来说,他们
大多数都是非常盲目的,不知道自己改如何入手,很多人在网上找一些视频,然后疯狂的过视频,很快就把一块内容都学完,他们理解的学完了就是视
频看完了,但是让他们动手去做东西却做不出来,而我的理解学完了就是自己能写出东西,所以对于初学者来说一定不能盲目,要有自己的规划,不然
就是浪费时间白忙活。
二:既然是学习Java开发专业技术,我个人的建议是,一定要有一个能指导
你的人,不能都靠自己闭门造车,这样的行为并不聪明,结识一位这方面的人才,时不时去问问人家问题,不然你可能会发现一个小问题能困扰你一天
,**后还不知道是什么原因。
三:学习Java开发技术,不能跟学数学语文一样对待,比较刚接触代码是不
容易记住的,所以要掌握上述的技术,你还要知道学习Java开发技术有哪些“坑”。对于学习方法这块是尤为重要的,怎么学才能让你学完了能记住之
前学的那些,不至于学完了就忘,这个问题值得你学习之前去思考的。
四:根据我多年的学习情况来看,你平时一定要养成好的学习习惯,就说我
自己吧!我就喜欢把自己曾经遇到的问题整理在电脑的日记本上,然后我会搜集一下博客相关的Java技术文章,一些我认为比较有用的网站,以后都能
用的上,这是我个人的学习习惯,相信我,如果你想走的更远,一定要养成习惯。
**后给大家一些详细的学习安排路线:
Java基础:Java基础语法、数组、类与对象、继承与多态、异常、范型、集
合、流与文件、反射、枚举、自动装箱和注解。
数据库:mysql、oracle
Javaweb:HTML与CSS网页开发基础、Java脚本语言、搭建开发环境、JSP基
本语法、JSP内置对象、JavaBean技术、Servlet技术、Ajax技术
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
JavaEE进阶
JavaWeb后端开发
Tomcat服务器
Nginx服务器配置
dubbo
SOA 微服务
JavaWeb开发核心
JavaEE主流框架
Spring框架
SpringMVC框架
Struts框架
Hibernate框架
MyBatis
阶段综合项目
微信
点餐系统
吃了吗app
课程优势
1.掌握当前流行的Nginx服务器后台程序开发
2.使学员具备企业级服务器、网站的项目开发经验。
本阶段学习目标
1.掌握Tomcat/Nginx服务器搭建。
2.掌握Jsp&Servlet的使用。
3.精通SSH、SSM两大流行框架的原理及使用。
本阶段学习效果
1.掌握html5相关知识能够**需求搭建高质量网站;
2.可以实现原生js搭建动态效果界面;
3.使用JQuery库快速搭建原型界面;
Android属性动画(Animator)
>
传统的Animation
动画虽然使用方便,但是不适合做具有交互性的动画效果,仅仅适合做展示性的动画,而Animator
,属性动画,是改变了该view
的内部属性,适合有交互功能的动画。
1.ObjectAnimator
代码:
//**个参数,动画的对象,第二个参数,需要改变的动画属性,后边参数,变化的具体值(像素)
//若写多个,则动画会同时实行,此例中即旋转360°的同时向x轴和y轴平移
ObjectAnimator.ofFloat(iv, "rotation", 0f, 360f).setDuration(1000).start();
ObjectAnimator.ofFloat(iv, "translationX", 0f, 200f).setDuration(1000).start();
ObjectAnimator.ofFloat(iv, "translationY", 0f, 200f).setDuration(1000).start();
可用的属性有
属性名
|
含义
|
translationX和translationY
|
x轴和y轴的偏移量
|
rotation、rotationX和rotationY
|
围绕支点旋转
|
scaleX和scaleY
|
缩放
|
pivotX和pivotY
|
控制着view对象的支点位置,围绕该支点旋转缩放处理,默认是view中心点
|
alpha
|
透明度
|
2.PRopertyValuesHolder
代码:
//效果同上,但动画效果做了优化,而且更有效率
PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("rotation", 0f, 360f);
PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("translationX", 0f, 200f);
PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY", 0f, 200f);
//调用ofPropertyValuesHolder方法传入要动画的控件和PropertyValuesHolder
ObjectAnimator.ofPropertyValuesHolder(iv, p1, p2, p3).setDuration(1000).start();
3.AnimatorSet
提供了更多的动画控制效果
代码:
ObjectAnimator animator1 = ObjectAnimator.ofFloat(iv, "rotation", 0f, 360f);
ObjectAnimator animator2 = ObjectAnimator.ofFloat(iv, "translationX", 0f, 200f);
ObjectAnimator animator3 = ObjectAnimator.ofFloat(iv, "translationY", 0f, 200f);
AnimatorSet set = new AnimatorSet();
set.playTogether(animator1, animator2, animator3);//同时执行
// set.playSequentially(animator1, animator2, animator3); //按顺序执行
set.setDuration(1000);
set.start();
还可以先x轴和y轴同时平移,**后才旋转
代码:
//将set.playTogether()替换为如下代码
set.play(animator2).with(animator3);//with表示同时一起执行
set.play(animator1).after(animator2);//after 2 或者 3 都可以
4.Animator监听事件
代码:
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(iv, "alpha", 0f, 1f);
objectAnimator.setDuration(1000);
//添加adapter来只监听某个事件或者如下注释的全部监听
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
Toast.makeText(getapplicationContext(), "别点了!", Toast.LENGTH_LONG).show();
}
});
// objectAnimator.addListener(new Animator.AnimatorListener() {
// @Override
// public void onAnimationStart(Animator animation) {
//
// }
//
// @Override
// public void onAnimationEnd(Animator animation) {
// Toast.makeText(getApplicationContext(), "别点了!", Toast.LENGTH_LONG).show();
// }
//
// @Override
// public void onAnimationCancel(Animator animation) {
//
// }
//
// @Override
// public void onAnimationRepeat(Animator animation) {
//
// }
// });
objectAnimator.start();
5.ValueAnimator的使用
ValueAnimator
可以当做数值发生器,生产具有一定规律的数字,从而来控制动画的过程。
例如:
代码:按钮的点击事件中,设置ValueAnimator
ValueAnimator animator = ValueAnimator.ofInt(0, 100);
animator.setDuration(5000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//获取动画过程中的value(上边定义的0~100),用以其他逻辑,例如设置文字
Integer value = (Integer) animation.getAnimatedValue();
bt.setText("" value);
}
});
animator.start();
6.View的animate方法
View
直接就有animate()
方法,用以直接驱动简单的属性动画
代码:
bt_time.animate()
.alpha(0).
setDuration(1000).
withStartAction(new Runnable() {
@Override
public void run() {
}
})
.withEndAction(new Runnable() {
@Override
public void run() {
}
})
.start();
相关推荐:
苏州JAVA培训 苏州JAVA培训班 苏州JAVA培训机构