`
yunlonglove
  • 浏览: 238957 次
社区版块
存档分类
最新评论

android 分页Title栏滑块效果--ActionBar(模拟网易 腾讯等动态效果)

 
阅读更多

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

前两个是网易的,后两个是腾讯的,(注意看上部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与Menu - 2 - email中ActionBar分析.doc

    在Android开发中,ActionBar是一个非常重要的组件,它位于应用程序界面的顶部,通常用来展示应用的标识、导航选项以及操作菜单。在"android ActionBar与Menu - 2 - email中ActionBar分析"这个主题中,我们将深入探讨...

    Template.Tab-based-ActionBar-Style.zip

    标题中的"Template.Tab-based-ActionBar-Style.zip"指的是一个基于Android平台的开发模板,它采用Tab和ActionBar样式。ActionBar在Android应用中是一个重要的组件,它通常位于屏幕顶部,用于显示应用的标识、提供...

    Android--ActionBar微信主界面

    本项目“Android--ActionBar微信主界面”显然是旨在模仿微信应用的主界面,利用`ActionBar`来实现类似的功能和视觉效果。下面将详细介绍`ActionBar`的相关知识点以及如何构建一个类似微信的界面。 1. **ActionBar的...

    android--actionbar

    首先,`ActionBar`作为Android设计指南的一部分,其主要功能包括显示应用图标、设置应用标题、提供可操作的菜单项(如搜索、分享等)以及切换不同的应用视图。在Android API Level 11及以上版本,系统原生支持`...

    Android--ActionBar

    ActionBar是Android 3.0(API Level 11)及以上版本中默认包含的一个组件,它为用户提供了一个直观的界面来执行常见的操作,如返回、搜索、设置等。ActionBar不仅提供了一个统一的外观和感觉,还支持动态地添加和...

    Android-带有传统标题栏ActionBar标题居中的TitleActivity

    在Android应用开发中,标题栏(ActionBar)是一个重要的UI组件,它通常位于应用程序界面的顶部,用于显示应用的名称、图标或提供导航选项。在Android的早期版本中,ActionBar是默认的标题栏实现,而在Material ...

    ActionBar Title文字居中

    在Android应用开发中,`ActionBar`是位于Activity顶部的一个组件,通常用于显示应用的标识、标题和操作选项。`ActionBar`的标题默认是左对齐的,但有时开发者可能希望将其设置为居中显示,以满足特定的界面设计需求...

    android4.0 actionbar API

    ActionBar 是 Android 4.0 (API 级别 14) 引入的一个新特性,它替代了传统的标题栏 (title bar),并提供了一个更丰富、更灵活的界面控件,用于整合应用的基本导航和辅助功能。ActionBar 出现在 Activity 的顶部,...

    ActionBar分页菜单

    本篇文章将详细探讨如何通过`ActionBar`来实现分页菜单,并结合`ActivityGroup`和`TextView`布局,实现动态滚动效果。 首先,`ActionBar`的分页功能通常借助`TabHost`或`ViewPager`来完成。`TabHost`在早期版本的...

    android-simple-actionbar-toolbar-app:简单的Android ActionBarToolbar示例用法

    这个项目"android-simple-actionbar-toolbar-app"显然是一个教学示例,旨在展示如何在Android应用中有效地使用这两个元素。下面将详细介绍这两个组件以及如何在Java编程环境中进行集成和使用。 **1. ActionBar** ...

    android-support-v7-appcompat

    通过使用`AppCompatActivity`作为基类,开发者可以为他们的应用添加一个顶部导航栏,提供搜索、菜单和操作项等功能,这些在早期版本的Android中是无法直接使用的。 其次,`appcompat-v7`库还包含了对Material ...

    Android--Working-with-Android-ActionBar:本教程的主要目的是解释Android ActionBar的工作原理

    Android-使用Android-ActionBar 本教程的主要目的是解释Android ActionBar的工作原理。 您可以在此处找到有关如何使用代码库的完整教程: 本教程由The App Guruz提出-最好的

    android开发之定制标题栏 --- 附

    在这个例子中,我们设置了Toolbar的高度、背景颜色和elevation属性以模拟Material Design的效果。`?attr/colorPrimary`引用了主题中的主色,`?attr/actionBarSize`确保了高度与标准标题栏一致。 接下来,要在...

    android-actionbar-master.zip_android_android actionbar组件

    本资源“android-actionbar-master.zip”提供了一个通用的Android ActionBar实现,旨在帮助开发者更高效地集成和自定义这一组件。 首先,让我们深入理解Android ActionBar的核心功能和设计原则。Action Bar的主要...

    android-support-v7-appcompat.zip

    这个库是Android Support Library系列的一部分,主要目标是向后兼容Android API Level 7及以上的版本,提供了对Android 4.1 (API 16)引入的ActionBar的功能支持,甚至在早期版本的Android设备上也能使用。...

    android ActionBar使用示例

    在Android开发中,ActionBar是一个非常重要的组件,它在Android 4.0(API级别14)及更高版本中被引入,作为应用界面顶部的标准导航和操作区域。在本示例中,我们将深入探讨如何在Android应用程序中使用和自定义...

    android-support-v4 android-support-v7-appcompat

    在Android开发中,`android-support-v4`和`android-support-v7-appcompat`是两个非常重要的库,它们为开发者提供了对旧版本Android系统的兼容性支持。这两个库是Google官方为了帮助开发者解决Android版本碎片化问题...

    自定义ActionBar标题居中显示

    在Android应用开发中,ActionBar是系统提供的一种顶部导航栏,用于展示应用的标识、标题以及操作选项。然而,系统默认的ActionBar标题布局通常是左对齐的,这在某些设计需求中可能不符合要求。本篇文章将深入探讨...

    Android开发自定义actionbar

    在Android应用开发中,Action Bar是一个非常重要的组件,它提供了应用程序的标识、主要的操作选项以及一个可选的“导航抽屉”(Navigation Drawer)。自定义Action Bar可以帮助开发者根据自己的需求来设计更符合应用...

    android仿微信6.0底部滑动菜单栏+导航栏,ViewPager+RadioGroup+ActionBar

    接着,`ActionBar`是Android中传统的顶部导航栏,可以显示应用的Logo、Title以及一些操作按钮。在仿微信6.0的项目中,`ActionBar`通常会定制成与微信类似的样式,展示应用名称和一些功能按钮,如搜索、设置等。...

Global site tag (gtag.js) - Google Analytics