吳嘉俊(Stef)高級講師
擁有多年的Java開發(fā)經(jīng)驗(yàn),CTO,EasyJF開源團(tuán)隊創(chuàng)始人之一、負(fù)責(zé)
EasyJWeb項目的開發(fā)和維護(hù)。曾在國內(nèi)多家大型軟件公司負(fù)責(zé)公司內(nèi)部框架的開發(fā)和維護(hù),為多個大中型公司做過架構(gòu)和技術(shù)咨詢。曾組織開發(fā)了藍(lán)源
裝飾行業(yè)ERP、美國EMR、藍(lán)源服裝行業(yè)連鎖管理系統(tǒng)、藍(lán)源SaaS服務(wù)平臺、藍(lán)源Eloan互聯(lián)網(wǎng)金融綜合解決方案等系統(tǒng)產(chǎn)品。具有非常豐富項目開發(fā)和
管理經(jīng)驗(yàn)。
擅長技術(shù):主流JavaEE,Android技術(shù),對 Spring、JPA、Hibernate、
MyBatis、Struts2、MongoDB、Redis等技術(shù)領(lǐng)域有深入研究。
吳老師有豐富的Java培訓(xùn)經(jīng)驗(yàn)和IT培訓(xùn)行業(yè)顧問經(jīng)驗(yàn);授課激情,有感染力
,注重對底層原理的剖析和理解;善于培養(yǎng)學(xué)生對編程的興趣;
Java開發(fā)的應(yīng)該
如何掌握上述相關(guān)技術(shù)?
Java開發(fā)的應(yīng)該如何掌握上述相關(guān)技術(shù)?
一:首先,有這樣的一種情況很常見,對于想自學(xué)Java開發(fā)的人來說,他們
大多數(shù)都是非常盲目的,不知道自己改如何入手,很多人在網(wǎng)上找一些視頻,然后瘋狂的過視頻,很快就把一塊內(nèi)容都學(xué)完,他們理解的學(xué)完了就是視
頻看完了,但是讓他們動手去做東西卻做不出來,而我的理解學(xué)完了就是自己能寫出東西,所以對于初學(xué)者來說一定不能盲目,要有自己的規(guī)劃,不然
就是浪費(fèi)時間白忙活。
二:既然是學(xué)習(xí)Java開發(fā)專業(yè)技術(shù),我個人的建議是,一定要有一個能指導(dǎo)
你的人,不能都靠自己閉門造車,這樣的行為并不聰明,結(jié)識一位這方面的人才,時不時去問問人家問題,不然你可能會發(fā)現(xiàn)一個小問題能困擾你一天
,**后還不知道是什么原因。
三:學(xué)習(xí)Java開發(fā)技術(shù),不能跟學(xué)數(shù)學(xué)語文一樣對待,比較剛接觸代碼是不
容易記住的,所以要掌握上述的技術(shù),你還要知道學(xué)習(xí)Java開發(fā)技術(shù)有哪些“坑”。對于學(xué)習(xí)方法這塊是尤為重要的,怎么學(xué)才能讓你學(xué)完了能記住之
前學(xué)的那些,不至于學(xué)完了就忘,這個問題值得你學(xué)習(xí)之前去思考的。
四:根據(jù)我多年的學(xué)習(xí)情況來看,你平時一定要養(yǎng)成好的學(xué)習(xí)習(xí)慣,就說我
自己吧!我就喜歡把自己曾經(jīng)遇到的問題整理在電腦的日記本上,然后我會搜集一下博客相關(guān)的Java技術(shù)文章,一些我認(rèn)為比較有用的網(wǎng)站,以后都能
用的上,這是我個人的學(xué)習(xí)習(xí)慣,相信我,如果你想走的更遠(yuǎn),一定要養(yǎng)成習(xí)慣。
**后給大家一些詳細(xì)的學(xué)習(xí)安排路線:
Java基礎(chǔ):Java基礎(chǔ)語法、數(shù)組、類與對象、繼承與多態(tài)、異常、范型、集
合、流與文件、反射、枚舉、自動裝箱和注解。
數(shù)據(jù)庫:mysql、oracle
Javaweb:HTML與CSS網(wǎng)頁開發(fā)基礎(chǔ)、Java腳本語言、搭建開發(fā)環(huán)境、JSP基
本語法、JSP內(nèi)置對象、JavaBean技術(shù)、Servlet技術(shù)、Ajax技術(shù)
框架:Struts2、Hibernate、Spring、SpringMVC、mybatis
JavaEE進(jìn)階
JavaWeb后端開發(fā)
Tomcat服務(wù)器
Nginx服務(wù)器配置
dubbo
SOA 微服務(wù)
JavaWeb開發(fā)核心
JavaEE主流框架
Spring框架
SpringMVC框架
Struts框架
Hibernate框架
MyBatis
階段綜合項目
微信
點(diǎn)餐系統(tǒng)
吃了嗎app
課程優(yōu)勢
1.掌握當(dāng)前流行的Nginx服務(wù)器后臺程序開發(fā)
2.使學(xué)員具備企業(yè)級服務(wù)器、網(wǎng)站的項目開發(fā)經(jīng)驗(yàn)。
本階段學(xué)習(xí)目標(biāo)
1.掌握Tomcat/Nginx服務(wù)器搭建。
2.掌握J(rèn)sp&Servlet的使用。
3.精通SSH、SSM兩大流行框架的原理及使用。
本階段學(xué)習(xí)效果
1.掌握html5相關(guān)知識能夠**需求搭建高質(zhì)量網(wǎng)站;
2.可以實(shí)現(xiàn)原生js搭建動態(tài)效果界面;
3.使用JQuery庫快速搭建原型界面;
Android屬性動畫(Animator)
>
傳統(tǒng)的Animation
動畫雖然使用方便,但是不適合做具有交互性的動畫效果,僅僅適合做展示性的動畫,而Animator
,屬性動畫,是改變了該view
的內(nèi)部屬性,適合有交互功能的動畫。
1.ObjectAnimator
代碼:
//**個參數(shù),動畫的對象,第二個參數(shù),需要改變的動畫屬性,后邊參數(shù),變化的具體值(像素)
//若寫多個,則動畫會同時實(shí)行,此例中即旋轉(zhuǎn)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
|
圍繞支點(diǎn)旋轉(zhuǎn)
|
scaleX和scaleY
|
縮放
|
pivotX和pivotY
|
控制著view對象的支點(diǎn)位置,圍繞該支點(diǎn)旋轉(zhuǎn)縮放處理,默認(rèn)是view中心點(diǎn)
|
alpha
|
透明度
|
2.PRopertyValuesHolder
代碼:
//效果同上,但動畫效果做了優(yōu)化,而且更有效率
PropertyValuesHolder p1 = PropertyValuesHolder.ofFloat("rotation", 0f, 360f);
PropertyValuesHolder p2 = PropertyValuesHolder.ofFloat("translationX", 0f, 200f);
PropertyValuesHolder p3 = PropertyValuesHolder.ofFloat("translationY", 0f, 200f);
//調(diào)用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);//同時執(zhí)行
// set.playSequentially(animator1, animator2, animator3); //按順序執(zhí)行
set.setDuration(1000);
set.start();
還可以先x軸和y軸同時平移,**后才旋轉(zhuǎn)
代碼:
//將set.playTogether()替換為如下代碼
set.play(animator2).with(animator3);//with表示同時一起執(zhí)行
set.play(animator1).after(animator2);//after 2 或者 3 都可以
4.Animator監(jiān)聽事件
代碼:
ObjectAnimator objectAnimator = ObjectAnimator.ofFloat(iv, "alpha", 0f, 1f);
objectAnimator.setDuration(1000);
//添加adapter來只監(jiān)聽某個事件或者如下注釋的全部監(jiān)聽
objectAnimator.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {
super.onAnimationEnd(animation);
Toast.makeText(getapplicationContext(), "別點(diǎn)了!", Toast.LENGTH_LONG).show();
}
});
// objectAnimator.addListener(new Animator.AnimatorListener() {
// @Override
// public void onAnimationStart(Animator animation) {
//
// }
//
// @Override
// public void onAnimationEnd(Animator animation) {
// Toast.makeText(getApplicationContext(), "別點(diǎn)了!", Toast.LENGTH_LONG).show();
// }
//
// @Override
// public void onAnimationCancel(Animator animation) {
//
// }
//
// @Override
// public void onAnimationRepeat(Animator animation) {
//
// }
// });
objectAnimator.start();
5.ValueAnimator的使用
ValueAnimator
可以當(dāng)做數(shù)值發(fā)生器,生產(chǎn)具有一定規(guī)律的數(shù)字,從而來控制動畫的過程。
例如:
代碼:按鈕的點(diǎn)擊事件中,設(shè)置ValueAnimator
ValueAnimator animator = ValueAnimator.ofInt(0, 100);
animator.setDuration(5000);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
//獲取動畫過程中的value(上邊定義的0~100),用以其他邏輯,例如設(shè)置文字
Integer value = (Integer) animation.getAnimatedValue();
bt.setText("" value);
}
});
animator.start();
6.View的animate方法
View
直接就有animate()
方法,用以直接驅(qū)動簡單的屬性動畫
代碼:
bt_time.animate()
.alpha(0).
setDuration(1000).
withStartAction(new Runnable() {
@Override
public void run() {
}
})
.withEndAction(new Runnable() {
@Override
public void run() {
}
})
.start();
相關(guān)推薦:
蘇州JAVA培訓(xùn) 蘇州JAVA培訓(xùn)班 蘇州JAVA培訓(xùn)機(jī)構(gòu)
體驗(yàn)課預(yù)約試聽
倒計時
12:00:00