這篇文章給大家介紹Android中怎么實(shí)現(xiàn)京東搜索框漸變效果,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
原理:就是自定義scrollview實(shí)現(xiàn)對(duì)滑動(dòng)高度的監(jiān)聽而已,如此實(shí)現(xiàn)對(duì)搜索框的漸變
//自定義ScrollViewpublic class CustomView extends ScrollView { public interface ScrollViewListener { void onScrollChanged(CustomView customView, int x, int y, int oldx, int oldy); } private ScrollViewListener scrollViewListener = null; public CustomView(Context context) { super(context); } public CustomView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public CustomView(Context context, AttributeSet attrs) { super(context, attrs); } public void setScrollViewListener(ScrollViewListener scrollViewListener) { this.scrollViewListener = scrollViewListener; } @Override protected void onScrollChanged(int x, int y, int oldx, int oldy) { super.onScrollChanged(x, y, oldx, oldy); if (scrollViewListener != null) { scrollViewListener.onScrollChanged(this, x, y, oldx, oldy); } }}
好了,接下來就直接在邏輯代碼中調(diào)用就行了!
@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); //搜索框在布局最上面 line.bringToFront(); mScrollview.setScrollViewListener(new CustomView.ScrollViewListener() { @Override public void onScrollChanged(CustomView customView, int x, int y, int oldx, int oldy) { if (y <= 0) { line.setBackgroundColor(Color.argb((int) 0, 227, 29, 26));//AGB由相關(guān)工具獲得,或者美工提供 } else if (y > 0 && y <= imageHeight) { //獲取ScrollView向下滑動(dòng)圖片消失的比例 float scale = (float) y / imageHeight; //更加這個(gè)比例,讓標(biāo)題顏色由淺入深 float alpha = (255 * scale); // 只是layout背景透明 line.setBackgroundColor(Color.argb((int) alpha, 255, 255, 255)); } } });
關(guān)于Android中怎么實(shí)現(xiàn)京東搜索框漸變效果就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。