首先我们看几张客户端试图:




前两个是网易的,后两个是腾讯的,(注意看上部title分页,当你点击不仅实现了分页,而且背景bar会跟着滑动,这个叫aciotnbar,sdk3.0以后就有了,)看着比一般单存改变背景的效果好看多了.
代码片段:
用于描绘.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawColor(Color.WHITE);
paint.setColor(Color.RED);
// 如果当前curRectF=null,也就是第一次访问,则默认为draw第一个bar
if (curRectF == null)
curRectF = new RectF(tv1.getLeft() + space_x, tv1.getTop()
- space_y, tv1.getRight() - space_x, tv1.getBottom()
+ space_y);
// 第一次方位tarRectF=null,默认为draw
if (tarRectF == null)
tarRectF = new RectF(tv1.getLeft() + space_x, tv1.getTop()
- space_y, tv1.getRight() - space_x, tv1.getBottom()
+ space_y);
// 这个时候需要不停的更新
if (Math.abs(curRectF.left - tarRectF.left) < step) {
curRectF.left = tarRectF.left;
curRectF.right = tarRectF.right;
}
if (curRectF.left > tarRectF.left) {
curRectF.left -= step;
curRectF.right -= step;
invalidate();// 继续刷新,从而实现滑动效果,每次step32.
} else if (curRectF.left < tarRectF.left) {
curRectF.left += step;
curRectF.right += step;
invalidate();
}
canvas.drawRoundRect(curRectF, 5, 5, paint);
}
用于监听点击bar事件.
@Override
public void onClick(View v) {
tarRectF.left = v.getLeft() + space_x;
tarRectF.right = v.getRight() - space_x;
tarRectF.top = v.getTop() - space_y;
tarRectF.bottom = v.getBottom() + space_y;
invalidate();// 刷新
}
从而我们就可以实现这个效果:(红色滑块会随着你点击跟着滑动.看起来比较爽.)



现在还有一个问题:那就是我们怎么实现点击下面滑块的时候也让上面view跟着切换呢,你会说用onclick监听,是这样的,不过简单的对下面bar监听,你会发现。滑块并不会跟着滑动,其实原因是你之前调过onclick事件,所以这个时候你再次调用会把以前的冲掉. 不过我们有办法,最重要的是最下面一个actionBar.onClick(v);
代码片段:
@Override
public void onClick(View v) {
layout.removeAllViews();
Intent intent = null;
switch (v.getId()) {
case R.id.tv1:
intent = new Intent(ActionBarActivity.this, MainActivity1.class);
break;
case R.id.tv2:
intent = new Intent(ActionBarActivity.this, MainActivity2.class);
break;
case R.id.tv3:
intent = new Intent(ActionBarActivity.this, MainActivity3.class);
break;
case R.id.tv4:
intent = new Intent(ActionBarActivity.this, MainActivity4.class);
break;
default:
break;
}
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = getLocalActivityManager().startActivity(
"subActivity", intent);
layout.addView(subActivity.getDecorView(), LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
actionBar.onClick(v);
}
这样我们就大功告成了,其实实现起来也不难,我也是参考别人的,相信你也ok的.
分享到:
相关推荐
在Android开发中,ActionBar是一个非常重要的组件,它位于应用程序界面的顶部,通常用来展示应用的标识、导航选项以及操作菜单。在"android ActionBar与Menu - 2 - email中ActionBar分析"这个主题中,我们将深入探讨...
标题中的"Template.Tab-based-ActionBar-Style.zip"指的是一个基于Android平台的开发模板,它采用Tab和ActionBar样式。ActionBar在Android应用中是一个重要的组件,它通常位于屏幕顶部,用于显示应用的标识、提供...
本项目“Android--ActionBar微信主界面”显然是旨在模仿微信应用的主界面,利用`ActionBar`来实现类似的功能和视觉效果。下面将详细介绍`ActionBar`的相关知识点以及如何构建一个类似微信的界面。 1. **ActionBar的...
首先,`ActionBar`作为Android设计指南的一部分,其主要功能包括显示应用图标、设置应用标题、提供可操作的菜单项(如搜索、分享等)以及切换不同的应用视图。在Android API Level 11及以上版本,系统原生支持`...
ActionBar是Android 3.0(API Level 11)及以上版本中默认包含的一个组件,它为用户提供了一个直观的界面来执行常见的操作,如返回、搜索、设置等。ActionBar不仅提供了一个统一的外观和感觉,还支持动态地添加和...
在Android应用开发中,标题栏(ActionBar)是一个重要的UI组件,它通常位于应用程序界面的顶部,用于显示应用的名称、图标或提供导航选项。在Android的早期版本中,ActionBar是默认的标题栏实现,而在Material ...
在Android应用开发中,`ActionBar`是位于Activity顶部的一个组件,通常用于显示应用的标识、标题和操作选项。`ActionBar`的标题默认是左对齐的,但有时开发者可能希望将其设置为居中显示,以满足特定的界面设计需求...
ActionBar 是 Android 4.0 (API 级别 14) 引入的一个新特性,它替代了传统的标题栏 (title bar),并提供了一个更丰富、更灵活的界面控件,用于整合应用的基本导航和辅助功能。ActionBar 出现在 Activity 的顶部,...
本篇文章将详细探讨如何通过`ActionBar`来实现分页菜单,并结合`ActivityGroup`和`TextView`布局,实现动态滚动效果。 首先,`ActionBar`的分页功能通常借助`TabHost`或`ViewPager`来完成。`TabHost`在早期版本的...
这个项目"android-simple-actionbar-toolbar-app"显然是一个教学示例,旨在展示如何在Android应用中有效地使用这两个元素。下面将详细介绍这两个组件以及如何在Java编程环境中进行集成和使用。 **1. ActionBar** ...
通过使用`AppCompatActivity`作为基类,开发者可以为他们的应用添加一个顶部导航栏,提供搜索、菜单和操作项等功能,这些在早期版本的Android中是无法直接使用的。 其次,`appcompat-v7`库还包含了对Material ...
Android-使用Android-ActionBar 本教程的主要目的是解释Android ActionBar的工作原理。 您可以在此处找到有关如何使用代码库的完整教程: 本教程由The App Guruz提出-最好的
在这个例子中,我们设置了Toolbar的高度、背景颜色和elevation属性以模拟Material Design的效果。`?attr/colorPrimary`引用了主题中的主色,`?attr/actionBarSize`确保了高度与标准标题栏一致。 接下来,要在...
本资源“android-actionbar-master.zip”提供了一个通用的Android ActionBar实现,旨在帮助开发者更高效地集成和自定义这一组件。 首先,让我们深入理解Android ActionBar的核心功能和设计原则。Action Bar的主要...
这个库是Android Support Library系列的一部分,主要目标是向后兼容Android API Level 7及以上的版本,提供了对Android 4.1 (API 16)引入的ActionBar的功能支持,甚至在早期版本的Android设备上也能使用。...
在Android开发中,ActionBar是一个非常重要的组件,它在Android 4.0(API级别14)及更高版本中被引入,作为应用界面顶部的标准导航和操作区域。在本示例中,我们将深入探讨如何在Android应用程序中使用和自定义...
在Android开发中,`android-support-v4`和`android-support-v7-appcompat`是两个非常重要的库,它们为开发者提供了对旧版本Android系统的兼容性支持。这两个库是Google官方为了帮助开发者解决Android版本碎片化问题...
在Android应用开发中,ActionBar是系统提供的一种顶部导航栏,用于展示应用的标识、标题以及操作选项。然而,系统默认的ActionBar标题布局通常是左对齐的,这在某些设计需求中可能不符合要求。本篇文章将深入探讨...
在Android应用开发中,Action Bar是一个非常重要的组件,它提供了应用程序的标识、主要的操作选项以及一个可选的“导航抽屉”(Navigation Drawer)。自定义Action Bar可以帮助开发者根据自己的需求来设计更符合应用...
接着,`ActionBar`是Android中传统的顶部导航栏,可以显示应用的Logo、Title以及一些操作按钮。在仿微信6.0的项目中,`ActionBar`通常会定制成与微信类似的样式,展示应用名称和一些功能按钮,如搜索、设置等。...