CollapsingImgText 头像和姓名移动、缩小,固定在title上

andnroid1.jpg

在有些开发中需要做到头像和姓名一起移动缩小到title上。大家可能会想到使用design架包中的 CollapsingToolbarLayout来实现, 但很遗憾,这个控件只支持文字移动缩小。

当然现在我们可以使用 CollapsingImageText控件来实现, 这个控件可以支持头像和名字一起移动,效果图:


collapsing.gif

导入架包:

compile 'com.yahui:collapsingImageText:0.1.4'

使用方法:

该控件必须嵌套在AppBarLayout中使用,否则没有效果。
由于这个控件继承了RelativeLayout实现, 所以 你可以使用相对布局的任何属性。

<android.support.design.widget.AppBarLayout
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="@dimen/app_bar_height"
        android:theme="@style/AppTheme.AppBarOverlay">

        <com.yahui.collapsingimagetext.CollapsingImageTextLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed"
            app:title_id="@+id/test_title"
            app:text_id="@+id/test_text"
            app:text_scale="0.6"
            app:text_margin_left="50dp"
            app:img_id="@+id/test_img"
            app:img_margin_left="10dp"
            >
            <TextView
                android:id="@+id/test_title"
                android:layout_width="match_parent"
                android:layout_height="45dp"
                android:background="@android:color/holo_blue_light"
                android:gravity="center"
                android:text="title is here"
                />

            <ImageView
                android:id="@+id/test_img"
                android:layout_width="60dp"
                android:layout_height="60dp"
                android:scaleType="fitXY"
                android:src="@mipmap/ic_launcher"
                android:layout_centerVertical="true"
                android:layout_marginTop="30dp"
                android:layout_marginLeft="20dp"
                />

            <TextView
                android:id="@+id/test_text"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/test_img"
                android:text="MoveText"
                android:textSize="20sp"
                android:layout_marginTop="30dp"
                android:layout_marginLeft="30dp"
                android:layout_centerVertical="true"
                />

        </com.yahui.collapsingimagetext.CollapsingImageTextLayout>
       
    </android.support.design.widget.AppBarLayout>

Xml配置说明

    app:title_id="@+id/test_title"  //指定title View
    app:text_id="@+id/test_text"    //指定姓名view
    app:text_scale="0.6"            //姓名view缩小的倍数
    app:text_margin_left="50dp"     //姓名view在titleView 中的左边距
    app:text_margin_top="10dp"      //姓名view在titleView 中的上边距
    app:img_id="@+id/test_img"      // 指定头像View
    app:img_scale="0.6"             //头像View缩小的倍数
    app:img_margin_left="10dp"      //头像View在titleView 中的左边距
    app:img_margin_top="10dp"       //头像View在titleView 中的上边距

java 调用方法

setImgTitleMarginTop(int top)
    
 setImgTitleMarginLeft(int left)
    
 setTextTitleMarginTop(int top) ;
    
 setImgTextMarginLeft(int left) ;

 setStateBarHeight(int stateBarHeight);//设置状态栏高度

如果你在 AppBarLayout 中的xml文件中 指定了android:fitsSystemWindows="true",
这个时候你也许需要调用setStateBarHeight(int stateBarHeight); 方法来设置状态栏的高度。

GitHub地址

https://github.com/hu5080126/CollapsingImgText

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,856评论 25 709
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 47,032评论 22 665
  • 我不是个喜欢古典诗词的人。 小时候,听说熟读唐诗宋词是有好处的,就从父亲的书房中拿来厚厚的《唐诗三百首》读...
    阿苏勒9665阅读 3,177评论 2 0
  • 凌晨3点高烧39.7°在医院急诊排队,忽然两个老人抱着一个孩子就冲进第一个医生办公室。“医生,快救救我们宝贝啊!快...
    gg光光阅读 4,983评论 2 1
  • 不论是哲学,艺术,都无法给人带来尘俗中的享受。在社会中占有一定地位而内心又自由一片丰富细腻精神天地的人,是曲高...
    苏菲的世界D阅读 3,349评论 0 1