android 的 launcher 有一个抽屉效果,可以有拉出和关闭的效果. 这里主要讨论如何实现这种效果.
将slidingdraw 控件添加到相关的layout中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<SlidingDrawer
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:handle="@+id/handle"
android:content="@+id/content" >
<Button
android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/handle" />
<LinearLayout
android:id="@+id/content"
android:layout_width="fill_parent"
android:orientation="vertical"
android:layout_height="wrap_content">
<TextView
android:width="wrap_content"
android:height="wrap_content"
android:text="@string/hello"
</LinearLayout>
</SlidingDrawer>
</LinearLayout>
有几个属性要注意, 先说slidingdrawer的属性.
android:handle="@+id/handle" 这个属性指定的是那一个控件的相应将启动这个SlidingDraw 这里是一个Button控件
android:content="@+id/content" 这个属性指定的SlidingDrawer的内容,若是SlidingDraw启动后, 应该调出那个内容,这里是一个linelayout
除此之外, Button里面设置了一个selector, android:background="@drawable/handle", 这样在不同的响应中就有不同的背景
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/tray_handle_normal" />
<item android:state_pressed="true" android:drawable="@drawable/tray_handle_pressed" />
<item android:state_focused="true" android:state_enabled="true" android:drawable="@drawable/tray_handle_selected" />
<item android:state_enabled="true" android:drawable="@drawable/tray_handle_normal" />
<item android:state_focused="true" android:drawable="@drawable/tray_handle_selected" />
</selector>
分享到:
相关推荐
在Android应用开发中,抽屉效果(Drawer Effect)是一种常见的设计模式,用于实现类似Google Now、Facebook等应用的侧滑菜单。这个从gitHub上整理的Android抽屉效果项目,涵盖了左滑、右滑、上滑和下滑等多种交互...
而SlidingDrawer组件是Android SDK提供的一种交互控件,它允许开发者在界面中添加一个可滑动的抽屉效果,用于隐藏并展示额外的信息或功能。在Android开发中,SlidingDrawer常被用于实现类似iOS中的滑动菜单或者底部...
总的来说,实现一个类似Android Launcher的左右滑动工作区效果涉及到多方面的技术,包括事件处理、动画设计、数据同步和性能优化。理解这些知识点并熟练运用,可以让你的自定义Launcher应用更加专业和用户友好。
- 在launcher3中,可能需要自定义ViewGroup以实现特定的布局效果和动画逻辑。例如,创建一个自定义的PagerAdapter来处理屏幕的切换,同时实现动画效果。 5. **触摸事件处理** - 切屏动画与用户的触摸事件密切相关...
- Launcher3主要由四大组件组成:`LauncherActivity`(主活动)、`Workspace`(桌面)、`AppDrawer`(应用抽屉)和`Widgets`(小部件)。 - `LauncherActivity`是入口点,管理整个启动器的生命周期。 - `...
Launcher3是一个Activity,它继承自PhoneWindowManager,并实现了桌面图标、快捷方式、抽屉菜单等功能。在源码中,我们可以看到Launcher3主要由以下几个核心类构成:Launcher、workspace、CellsContainer和...
"Android开发实现Launcher3应用列表修改透明背景的方法" 本文主要介绍了Android开发实现Launcher3应用列表修改透明背景的方法,结合实例形式分析了Launcher3相关配置文件与功能函数修改设置操作技巧。下面将对标题...
`Launcher3`使用`PropertyAnimator`和`ObjectAnimator`来实现平滑的过渡效果,如应用图标拖放时的缩放、旋转动画。`ViewPropertyAnimator`帮助处理视图的可见性和动画状态。 8. **性能优化** 为了提高启动速度和...
"MT8788-Android12 Launcher3去掉抽屉实现左右滑动"这个项目就是针对这种需求进行的定制。 首先,我们要理解“去掉抽屉”的含义。在原生Android中,应用抽屉是用户存放和访问所有应用的地方,通常可以通过滑动主...
在实现Launcher2时,开发者需要考虑多方面的因素,如性能优化、内存管理、用户界面的可定制性以及与其他系统组件的协作。通过深入研究Launcher2的源代码,开发者可以学习到如何构建高效、响应式的Android应用,并对...
这个【去掉抽屉的8.1Launcher3源码】压缩包文件,正是为了展示这一改动的源代码实现。 传统的Android系统通常将应用抽屉(App Drawer)作为一个单独的页面,用户可以通过滑动或者点击图标来访问未在主屏幕上放置的...
3. **布局文件**: 如`res/layout/main.xml`定义了Launcher的UI结构,包括网格视图、抽屉视图等。开发者可以通过修改这些XML文件来调整Launcher的外观和行为。 4. **数据存储**: Launcher可能会使用SQLite数据库来...
1. **应用抽屉**:除了主屏幕,Launcher3还包括应用抽屉,展示所有安装的应用。抽屉可通过手势或按钮切换。 2. **长按操作**:允许用户长按图标进行编辑(如移动、删除、创建快捷方式),这需要监听触摸事件并处理...
- **动画效果**:通过PropertyAnimator和Transition API实现平滑的过渡和动画效果,提升用户体验。 4. **触摸事件处理** - **MotionEvent**:Launcher3通过处理MotionEvent来响应用户的触摸操作,如点击、滑动和...
6. **AppGrid**: 应用抽屉(App Drawer)的实现,通常以网格形式展示所有应用程序。AppGrid使用RecyclerView作为基础,自定义适配器和布局管理器以满足特定的布局需求。 7. **ShortcutAndWidgetContainer**: 这个类...
在Android系统中,Launcher是用户与设备交互的入口,它负责展示桌面图标、应用抽屉以及各种快捷方式,使得用户可以方便地启动应用程序。本文将深入探讨如何实现Android 4.0(ICS,Ice Cream Sandwich)中的Launcher...
当用户打开Launcher时,`LauncherActivity`首先启动,接着加载工作区和应用抽屉的数据。这些数据主要来源于`PackageManager`和`ContentProvider`,它们提供应用程序信息和用户设置。`Workspace`和`AppsGrid`根据...
允许更改图标的形状、颜色、阴影等属性,以实现独特的视觉风格。 **3.5 待机界面客制化** 自定义待机界面的壁纸、小部件、快捷方式等,打造个性化待机体验。 **3.6 应用抽屉客制化** 可以改变应用抽屉的排序方式...