1.自定义ScrollView,滑动监听,高度改变时的监听 public class ObservableScrollView extends ScrollView { private ScrollViewListener scrollViewListener = null; public ObservableScrollView(Context context) { super(context); } public ObservableScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public ObservableScrollView(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); } } public interface ScrollViewListener { void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy); } } 2.顶部是个图片,person_image 是顶部的图片,private void initListeners() { // 获取顶部图片高度后,设置滚动监听 ViewTreeObserver vto = person_image.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {//布局完成时调用,一当view改变就会系统就会调用 @Override public void onGlobalLayout() { imageHeight = person_image.getHeight() / 2; //一旦得到高度,就将addOnGlobalLayoutListener注销掉 person_image.getViewTreeObserver().removeGlobalOnLayoutListener( this); } }); } 3. private void initScrollView() { scroll_view = (ObservableScrollView) findViewById(R.id.scroll_view); scroll_view.setScrollViewListener(new ObservableScrollView.ScrollViewListener() { @Override public void onScrollChanged(ObservableScrollView scrollView, int x, int y, int oldx, int oldy) { Log.e("ObservableScrollView", "x:" + x + "y:" + y + "oldx:" + oldx + "oldy:" + oldy); if (y <= 0) { activity_base_title_rl.setBackgroundColor(Color.argb((int) 0, 91, 78, 97));//AGB由相关工具获得,或者美工提供 } else if (y > 0 && y <= imageHeight) { float scale = (float) y / imageHeight; float alpha = (255 * scale); activity_base_title_rl.setBackgroundColor(Color.argb((int) alpha, 91, 78, 97)); } else { activity_base_title_rl.setBackgroundColor(Color.argb((int) 255, 91, 78, 97)); } } });
4.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <com.live.longmao.view.ObservableScrollView android:id="@+id/scroll_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:overScrollMode="never" android:scrollbars="none"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/person_image" android:layout_width="match_parent" android:layout_height="300dp" android:scaleType="centerCrop" android:src="@mipmap/icon_star_bg" /> <LinearLayout android:layout_width="match_parent" android:layout_height="45dp" android:layout_alignBottom="@+id/person_image" android:background="#90000000" android:gravity="center_vertical" android:orientation="horizontal"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="18dp" android:layout_marginLeft="10dp" android:background="@drawable/label_bg" android:paddingLeft="@dimen/person_three" android:paddingRight="@dimen/person_three"> <ImageView android:id="@+id/head_anchorImage" android:layout_width="14dp" android:layout_height="14dp" android:layout_centerVertical="true" android:src="@mipmap/icon_anchor" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="17dp" android:text="认证主播" android:textColor="@color/white" android:textSize="@dimen/h4" /> </RelativeLayout> <ImageView android:id="@+id/tv_sex" android:layout_width="17dp" android:layout_height="17dp" android:layout_marginLeft="5dp" android:background="@mipmap/global_female" /> <ImageView android:id="@+id/img_level" android:layout_width="36dp" android:layout_height="17dp" android:layout_marginLeft="5dp" android:background="@mipmap/rank_10" /> <ImageView android:id="@+id/img_vip" android:layout_width="40dp" android:layout_height="19dp" android:layout_marginLeft="5dp" android:background="@mipmap/icon_my_vip" /> </LinearLayout> </RelativeLayout> <TextView android:layout_width="match_parent" android:layout_height="12dp" android:background="#eeeeee" /> <RelativeLayout android:id="@+id/rl_near" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/ll_head" android:background="@color/white" android:paddingBottom="10dp" android:paddingTop="10dp"> <View android:layout_width="3dp" android:layout_height="20dp" android:layout_centerVertical="true" android:background="@color/title_color" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="我的相册" android:textColor="@color/gray" android:textSize="@dimen/find_text_size" /> </RelativeLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="100dp" /> <TextView android:layout_width="match_parent" android:layout_height="12dp" android:background="#eeeeee" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/ll_head" android:background="@color/white" android:paddingBottom="10dp" android:paddingTop="10dp"> <View android:layout_width="3dp" android:layout_height="20dp" android:layout_centerVertical="true" android:background="@color/title_color" /> <TextView android:id="@+id/person_sin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="个性签名" android:textColor="@color/gray" android:textSize="@dimen/find_text_size" /> </RelativeLayout> <RelativeLayout android:id="@+id/rl_info_sign" android:layout_width="match_parent" android:layout_height="40dp" android:background="@color/white" android:paddingLeft="10dp"> <TextView android:id="@+id/info_sign" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="瞎子一波R闪教你做人。。。" /> </RelativeLayout> <TextView android:layout_width="match_parent" android:layout_height="12dp" android:background="#eeeeee" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/ll_head" android:background="@color/white" android:paddingBottom="10dp" android:paddingTop="10dp"> <View android:layout_width="3dp" android:layout_height="20dp" android:layout_centerVertical="true" android:background="@color/title_color" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:text="个人信息" android:textColor="@color/gray" android:textSize="@dimen/find_text_size" /> </RelativeLayout> <RelativeLayout android:id="@+id/person_name" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="昵称" android:textSize="14sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/person_nine" android:layout_toLeftOf="@+id/content_right1" android:text="龙猫" android:textColor="@color/gray" android:textSize="14sp" /> <ImageView android:id="@+id/content_right1" android:layout_width="@dimen/person_seven" android:layout_height="@dimen/person_eleven" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@mipmap/right_arrow" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="@dimen/line" android:layout_marginLeft="10dp" android:background="@color/lightGreyColor" /> <RelativeLayout android:id="@+id/person_sex_rl" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="性别" android:textSize="14sp" /> <TextView android:id="@+id/person_sex" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/person_nine" android:layout_toLeftOf="@+id/content_right2" android:text="女" android:textColor="@color/gray" android:textSize="14sp" /> <ImageView android:id="@+id/content_right2" android:layout_width="@dimen/person_seven" android:layout_height="@dimen/person_eleven" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@mipmap/right_arrow" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="@dimen/line" android:layout_marginLeft="10dp" android:background="@color/lightGreyColor" /> <RelativeLayout android:id="@+id/person_profression" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="职业" android:textSize="14sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/person_nine" android:layout_toLeftOf="@+id/content_right3" android:text="保密" android:textColor="@color/gray" android:textSize="14sp" /> <ImageView android:id="@+id/content_right3" android:layout_width="@dimen/person_seven" android:layout_height="@dimen/person_eleven" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@mipmap/right_arrow" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="@dimen/line" android:layout_marginLeft="10dp" android:background="@color/lightGreyColor" /> <RelativeLayout android:id="@+id/peson_test4" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="兴趣爱好" android:textSize="14sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/person_nine" android:layout_toLeftOf="@+id/content_right4" android:text="看球" android:textColor="@color/gray" android:textSize="14sp" /> <ImageView android:id="@+id/content_right4" android:layout_width="@dimen/person_seven" android:layout_height="@dimen/person_eleven" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@mipmap/right_arrow" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginLeft="10dp" android:background="@color/lightGreyColor" /> <RelativeLayout android:id="@+id/person_test5" android:layout_width="match_parent" android:layout_height="50dp" android:background="@color/white" android:paddingLeft="10dp" android:paddingRight="10dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="体育运动" android:textSize="14sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="@dimen/person_nine" android:layout_toLeftOf="@+id/content_right5" android:background="@drawable/textview_bank" android:gravity="center" android:paddingLeft="5dp" android:paddingRight="5dp" android:text="足球" android:textColor="@color/white" android:textSize="14sp" /> <ImageView android:id="@+id/content_right5" android:layout_width="@dimen/person_seven" android:layout_height="@dimen/person_eleven" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:src="@mipmap/right_arrow" /> </RelativeLayout> <View android:layout_width="match_parent" android:layout_height="20dp" android:background="#eeeeee" /> </LinearLayout> </com.live.longmao.view.ObservableScrollView> <RelativeLayout android:id="@+id/activity_base_title_rl" android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center_vertical"> <TextView android:id="@+id/tv_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:text="龙猫Top" android:textColor="@color/white" android:textSize="18sp" android:typeface="serif" /> <ImageButton android:id="@+id/iv_back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:background="@color/transparent" android:clickable="true" android:paddingLeft="20dp" android:paddingRight="20dp" android:src="@mipmap/arrow_left" /> <TextView android:id="@+id/tv_save" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:background="@color/transparent" android:clickable="true" android:gravity="center" android:paddingLeft="15dp" android:paddingRight="15dp" android:text="保存" android:textColor="@color/white" android:textSize="16sp" /> </RelativeLayout> </RelativeLayout> </LinearLayout>
滑动监听,当上拉时上面标题栏逐渐显示出来
最新推荐文章于 2023-05-26 08:00:00 发布