Android实现高德地图首页效果(上)

 更新时间:2023年08月30日 09:02:43   作者:似曾相识2022  
这篇文章主要为大家详细介绍了基于Android实现高德地图首页效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

今天给大家带来一个非常熟悉的效果——高德首页

咱们话不多说,直接上效果图:

一般用上这个效果的都和地图有关,看上去还是挺酷眩的。但如果从来没了解过的同学要自己实现这个效果还是不容易的。值得庆幸的是,谷歌提供了现成的设计库:CoordinatorLayout结合CoordinatorLayout.Behavior

首先,xml中根布局需要是CoordinatorLayout,其子view需要是一个可滑动的View,咱们这里直接使用NestedScrollView

<androidx.coordinatorlayout.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/shape_white"
    app:behavior_hideable="false"
    app:behavior_peekHeight="300dp"
    app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
        <TextView
           android:layout_width="wrap_content"
           android:layout_height="match_parent"
           android:layout_gravity="center_horizontal"
           android:layout_marginTop="20dp"
           android:drawablePadding="10dp"
           android:lineSpacingExtra="20dp"
           android:gravity="center"
           android:text="我是内容\n我是内容\n我是内容\n我是内容\n我是内容\n我是内容\n我是内容\n                我是内容\n" />
</androidx.core.widget.NestedScrollView>
</androidx.coordinatorlayout.widget.CoordinatorLayout>

这里需要注明下:

  • 滑动控件中需要添加layout_behavior属性,这里默认使用BottomSheetBehavior
  • behavior_hideable:代表是否隐藏
  • behavior_peekHeight:代表滑动控件初始展示的高度

完成xml编写后直接运行得到如下效果:

看似好像差不多,但只能全部显示或者只显示我们设置的300dp高。其实,BottomSheetBehavior内部还提供了很多属性:

  • isFitToContents:是否填充整个内容
  • expandedOffset:展开后距离顶部的高度
  • halfExpandedRatio:半展开占比
  • setState:设置当前状态:隐藏、半展开、全展开等等
  • setPeekHeight:设置初始显示高度

原来还可以半展开,咱们直接配置上全套效

bottomSheetBehavior?.let {
   it.isFitToContents = false //展开后开度填充Parent的高度
    //setFitToContents 为false时,展开后距离顶部的位置(Parent会以PaddingTop填充)
    it.expandedOffset =  ImmersionBar.getStatusBarHeight(this) + 40//顶部距离
    it.halfExpandedRatio = 0.5f //半展开占比
    it.isHideable = false
    it.setPeekHeight(150, true)//有动画
    it.setState(BottomSheetBehavior.STATE_HIDDEN) 
}

到这里其实已经可以满足基本要求了,整体动画体验也是不错的,非常流畅。但我们的目标还没有达到,在之前有写过监听滑动控件实现状态栏颜色切换,那么现在我们是否也可以利用类似的原理来实现滑动过程中的一些效果呢?

答案是肯定的。下篇咱们继续讲解BottomSheetBehavior滑动监听下的效果实现,最终完成高德首页效果。

到此这篇关于Android实现高德地图首页效果(上)的文章就介绍到这了,更多相关Android实现高德地图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Android 8.0系统中通知栏的适配详解

    Android 8.0系统中通知栏的适配详解

    本片文章给大家通过实例讲解分析了Android 8.0系统中通知栏的相关知识点,对此有需要的朋友可以参考学习下。
    2018-04-04
  • Android中操作SQLite数据库快速入门教程

    Android中操作SQLite数据库快速入门教程

    这篇文章主要介绍了Android中操作SQLite数据库快速入门教程,本文讲解了数据库基础概念、Android平台下数据库相关类、创建数据库、向表格中添加数据、从表格中查询记录等内容,需要的朋友可以参考下
    2015-03-03
  • Android ListView滚动到底后自动加载数据

    Android ListView滚动到底后自动加载数据

    这篇文章主要为大家详细介绍了Android之ListView滚动到底后自动加载数据,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号

    Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号

    本篇文章主要介绍了Android 正则表达式验证手机号、姓名(包含少数民族)、身份证号的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Android集成zxing扫码框架功能

    Android集成zxing扫码框架功能

    这篇文章主要介绍了Android集成zxing扫码框架功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android实现退出时关闭所有Activity的方法

    Android实现退出时关闭所有Activity的方法

    这篇文章主要介绍了Android实现退出时关闭所有Activity的方法,主要通过自定义类CloseActivityClass实现这一功能,需要的朋友可以参考下
    2014-09-09
  • Android中使用BitmapShader类来制作各种图片的圆角

    Android中使用BitmapShader类来制作各种图片的圆角

    这篇文章主要介绍了Android中使用BitmapShader类来制作各种图片的圆角的方法,文中随教程讲解带出的例子可以轻松控制图片圆形的变换,很好很强大,需要的朋友可以参考下
    2016-04-04
  • TabLayout+ViewPager实现切页的示例代码

    TabLayout+ViewPager实现切页的示例代码

    这篇文章主要介绍了TabLayout+ViewPager实现切页的示例代码,可实现左右滑动切换视图界面和点击切换,非常具有实用价值,需要的朋友可以参考下
    2019-01-01
  • Android PopUpWindow使用详解

    Android PopUpWindow使用详解

    PopupWindow与AlertDialog最关键的区别是AlertDialog不能指定显示位置,只能默认显示在屏幕最中间(当然也可以通过设置WindowManager参数来改变位置)。而PopupWindow是可以指定显示位置的,随便哪个位置都可以,更加灵活
    2021-10-10
  • Android Xutils3网络请求的封装详解及实例代码

    Android Xutils3网络请求的封装详解及实例代码

    这篇文章主要介绍了Android Xutils3网络请求的封装详解及实例代码的相关资料,需要的朋友可以参考下
    2016-12-12

最新评论