本篇文章為大家展示了如何在Android應(yīng)用中實(shí)現(xiàn)一個(gè)動(dòng)態(tài)searchview搜索欄效果,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
實(shí)現(xiàn)這個(gè)效果, 只要關(guān)注幾個(gè)點(diǎn)
1.搜索欄伸展和收縮動(dòng)畫(huà)效果實(shí)現(xiàn)
2.搜索欄伸展和收縮的時(shí)機(jī)
3.頂部透明度的漸變
搜索欄伸展和收縮動(dòng)畫(huà)效果實(shí)現(xiàn):
我們只要明確,使用系統(tǒng)為我們提供的Transition框架,就可以輕而易舉的實(shí)現(xiàn)了。
首先要引入依賴compile 'com.android.support:design:25.3.1',要知道我們使用到的這部分Transition效果只是封裝了屬性動(dòng)畫(huà)的內(nèi)容,是可以兼容到5.0之前的。
private void expand() { //設(shè)置伸展?fàn)顟B(tài)時(shí)的布局 tvSearch.setText("搜索簡(jiǎn)書(shū)的內(nèi)容和朋友"); RelativeLayout.LayoutParams LayoutParams = (RelativeLayout.LayoutParams) mSearchLayout.getLayoutParams(); LayoutParams.width = LayoutParams.MATCH_PARENT; LayoutParams.setMargins(dip2px(10), dip2px(10), dip2px(10), dip2px(10)); mSearchLayout.setLayoutParams(LayoutParams); //設(shè)置動(dòng)畫(huà) beginDelayedTransition(mSearchLayout); } private void reduce() { //設(shè)置收縮狀態(tài)時(shí)的布局 tvSearch.setText("搜索"); RelativeLayout.LayoutParams LayoutParams = (RelativeLayout.LayoutParams) mSearchLayout.getLayoutParams(); LayoutParams.width = dip2px(80); LayoutParams.setMargins(dip2px(10), dip2px(10), dip2px(10), dip2px(10)); mSearchLayout.setLayoutParams(LayoutParams); //設(shè)置動(dòng)畫(huà) beginDelayedTransition(mSearchLayout); } void beginDelayedTransition(ViewGroup view) { mSet = new AutoTransition(); //設(shè)置動(dòng)畫(huà)持續(xù)時(shí)間 mSet.setDuration(300); // 開(kāi)始表演 TransitionManager.beginDelayedTransition(view, mSet); }