掌上快递之主界面篇(2)

掌上快递之主界面篇(2)

分类:Android相关

android

概述

这是Fragment1的第二部分内容 侧滑栏,(主要效果是仿QQ效果)使用了github上的slidingmenu_library

效果图如下:

【1】内容区域会伴随菜单的出现而缩小【2】侧滑菜单给人的感觉是隐藏在内容的后面,而不是拖出来的感觉【3】侧滑菜单有一个缩放以及透明度的效果

然后就是简单的百度地图,和摇一摇显示小知识

1、布局文件

include在fragment1的主布局文件R.layout.activity_main中 <include layout="@layout/left_slide" />

由于侧滑栏只是一个listview即可布局文件比较简单

<span style="font-family:Microsoft YaHei;font-size:14px;"><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><ImageViewandroid:id="@+id/header"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="10dp"android:layout_gravity="center_horizontal"android:src="@drawable/slideledefheader" /><ListViewandroid:id="@+id/leftslide_list"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginTop="20dp"android:cacheColorHint="#00000000"android:footerDividersEnabled="false"android:gravity="center_horizontal"android:listSelector="@android:color/transparent" ></ListView></LinearLayout></span>

2、侧滑特效实现分析

那么我们如何能做到呢:我们可以在滑动的时候,不断的改变内容区域的大小;如何改变呢?我们在菜单出现的整个过程中,不断记录菜单显示的宽度与其总宽度的比值,是个从0到1的过程,然后把0~1转化为1~0.7(假设内容区域缩小至0.7);不断去缩小内容区域;上面已经可以得到0到1的这个值了,那么缩放和透明度的动画就不在话下了;我们使用的HorizontalScrollView,然后水平放置了菜单和内容,如何让菜单可以隐藏到内容的后面呢?其实也比较简单,在菜单出现的过程中,不断设置菜单的x方向的偏移量;0的时候完全隐藏,0.3的时候,隐藏x方向偏移量为0.7个宽度

主要代码在SlidingMenu.java中

<span style="font-family:Microsoft YaHei;font-size:14px;">/** * 滚动发生时 */@Overrideprotected void onScrollChanged(int l, int t, int oldl, int oldt) {super.onScrollChanged(l, t, oldl, oldt);float scale = l * 1.0f / mMenuWidth; // 1 ~ 0/** * 区别1:内容区域1.0~0.7 缩放的效果 scale : 1.0~0.0 0.7 + 0.3 * scale ** 区别2:菜单的偏移量需要修改 ** 区别3:菜单的显示时有缩放以及透明度变化 缩放:0.7 ~1.0 1.0 – scale * 0.3 透明度 0.6 ~ 1.0 0.6+ * 0.4 * (1- scale) ; **/float rightScale = 0.7f + 0.3f * scale;float leftScale = 1.0f – scale * 0.3f;float leftAlpha = 0.6f + 0.4f * (1 – scale);// 调用属性动画,设置TranslationXViewHelper.setTranslationX(mMenu, mMenuWidth * scale * 0.8f);ViewHelper.setScaleX(mMenu, leftScale);ViewHelper.setScaleY(mMenu, leftScale);ViewHelper.setAlpha(mMenu, leftAlpha);// 设置content的缩放的中心点ViewHelper.setPivotX(mContent, 0);ViewHelper.setPivotY(mContent, mContent.getHeight() / 2);ViewHelper.setScaleX(mContent, rightScale);ViewHelper.setScaleY(mContent, rightScale);}</span>

3、百度地图

关于获取百度地图秘钥和基本功能实现请见我的另一篇博文百度地图入门,地图部分做的比较简单,主要就是继承了BDLocationListener实现自己的定位(private class MyLocationListener implements BDLocationListener),然后使用附近搜索mPoiSearch .searchNearby((new PoiNearbySearchOption()) .location(latLng).keyword("快递").radius(3000) .pageNum(0));

也许不是自己该去发挥的地方,还是让自己到最适合自己战斗的方面去吧!勇敢的接受自己的失败,

掌上快递之主界面篇(2)

相关文章:

你感兴趣的文章:

标签云: