滑动监听,当上拉时上面标题栏逐渐显示出来

来源:互联网 发布:java 多线程 编辑:程序博客网 时间:2024/06/08 01:11
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>

阅读全文
0 0
原创粉丝点击