一个接着一个的activity,写啊写,调啊调,后来,终于发觉,activity的标题栏好难看,好单调啊。咱们为了吸引用户的眼球,得搞点个性化的东西。
自定义标题栏的方法,网上一搜一大堆,我也稍微提一下,oncreate中加上如下代码就行:
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(view);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);
这个名为title的layout是这样子的,很简单,就是一个textview,然后有个背景色:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#66cccccc"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello"
/>
</LinearLayout>
好,运行看效果。看到了吧,发现问题了没,标题栏的背景色没有填充满是吧,这可真是杯具哟。padding、margin什么的都用上也不管用,怎么办呢。
看源码!
window初始化,加载标题的地方,咱也不知道在哪里,不过咱能以layout作为切入点。打开源码里面的layout文件夹,找跟标题栏相关的xml文件。里面有screen_title.xml和screen_custom_title.xml,这就是咱们要找的目标了。
既然是自定义标题,那我们就看screen_custom_title.xml,里面有一个title_container和一个content,组合成了标题栏,我们自定义标题所给出的view,都被content作为子view了,影响不了那个title_container和content,所以,任你怎么弄,它该留白的还是留白,你没招。
看title_container有个style是这样的:style="?android:attr/windowTitleBackgroundStyle"
content的foreground是这样的android:foreground="?android:attr/windowContentOverlay"
好,从这里我们就可以入手改了。
去values下面的themes.xml找到windowTitleBackgroundStyle这一项,这个应该在注释<!-- Window attributes -->的下面。
<item name="windowTitleBackgroundStyle">@android:style/WindowTitleBackground</item>
然后去styles.xml下找到WindowTitleBackground项,
<style name="WindowTitleBackground">
<item name="android:background">@android:drawable/title_bar</item>
</style>
发现是一个drawable,xml的,里面定义了背景图片。ok,我们知道了,这个是定义titlebar的背景色。
然后,去values下面的themes.xml找到windowContentOverlay,也是属于window attributes。
<item name="windowContentOverlay">@android:drawable/title_bar_shadow</item>
发现也是个drawable,ok,我们也知道了,这个是定义contentoverlay的背景的。
其实,通过研究我发现,不能填充满的原因是title_container的背景的原因,我们覆盖一下就行了。
首先,写个themes文件
<resources>
<style name="XTheme" parent="android:Theme">
<!-- Window attributes -->
<item name="android:windowTitleStyle">@style/XWindowTitle</item>
<item name="android:windowTitleBackgroundStyle">@style/StatusBarBackground</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>
然后写styles文件
<resources>
<style name="StatusBarBackground">
<item name="android:background">@drawable/shape</item>
</style>
<style name="XWindowTitle" parent="android:WindowTitle">
<item name="android:shadowColor">#BB000000</item>
<item name="android:shadowRadius">0</item>
</style>
</resources>
注意这个XWindowTitle要继承WindowTitle。
最后,在manifext中给自定义的activity申明主题。
<activity android:name=".Entry"
android:label="@string/app_name"
android:theme="@style/XTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
论坛原帖及源码
http://www.iteye.com/topic/760314
分享到:
相关推荐
总的来说,实现Android标题栏随着RecyclerView滚动背景渐变的技术涉及到Android的UI组件交互、滚动事件监听、颜色处理等多个方面,是一个综合性的Android开发技能。通过这样的实践,开发者不仅可以提升用户界面的...
为了提供更丰富的视觉体验,开发者有时会采用动态效果,比如“Android标题栏颜色渐变”,这种效果通常与ScrollView或者NestedScrollView等可滚动视图结合使用,实现随着屏幕滚动,状态栏和标题栏颜色的平滑过渡。...
本教程将详细讲解如何修改Android标题栏的大小、颜色以及其他相关属性,帮助开发者自定义符合应用设计风格的标题栏。 1. **修改标题栏文字** - 使用`setTitle()`方法可以改变标题栏的文字内容。例如: ```java ...
【Android标题栏渐变色显示隐藏view.demo】项目是一个针对Android平台的应用开发示例,它主要展示了如何在用户上下滑动屏幕时实现标题栏颜色的动态渐变效果,并且能够根据视图的显示和隐藏来调整标题栏的状态。...
总结来说,实现Android标题栏滑动颜色变化主要涉及以下几个步骤:设置自定义标题栏,监听滑动事件,处理颜色动画,以及使用CollapsingToolbarLayout和AppBarLayout来控制标题栏的行为。通过这些方法,你可以创建出...
Android 标题栏 TitleBar 全攻略 Android 标题栏 TitleBar 是一个自定义的 UI 组件,由 LinearLayout 继承而来,主要用于展示浏览器的标题栏信息,包括网站图标、标题、动画进度条和背景进度条等。下面我们将详细...
"android标题栏自定义标签"这一主题,主要涉及如何在Android应用的标题栏中添加和定制各种元素,如文字、图片,以及实现沉浸式显示效果。下面将详细讲解这个知识点。 首先,Android的标题栏通常指的是`ActionBar`或...
在Android应用开发中,创建吸引用户的界面是至关重要的,而标题栏(ActionBar或者Toolbar)作为应用界面的重要组成部分,它的设计和交互方式直接影响到用户体验。"Android 标题栏渐变效果"是一种流行的视觉设计手法...
本文将深入探讨如何实现这样一个Android标题栏颜色渐变效果。 首先,我们要了解Android中的标题栏,它通常是Activity或Fragment顶部的一块区域,用于显示应用的名称或当前页面的标题。在Material Design规范下,...
《通用Android标题栏控件——CustomTitleBar深度解析》 在Android应用开发中,界面设计是用户体验的关键一环,而标题栏(Title Bar)作为应用界面的重要组成部分,其设计和功能实现往往直接影响到用户对应用的第一...
此demo是关于标题的背景色默认的是全透明的,也就是以背景图片来作为背景色。然后随着ListView的滑动标题的背景色会有全透明慢慢的变为和背景图一样的颜色。具体详情请前往博客查看...
TitleBar:打造高效Android标题栏的新选择 在Android应用开发中,标题栏是用户界面的重要组成部分。一个好的标题栏不仅能够提升应用的专业感,还能增强用户体验。然而,传统的标题栏实现方式往往存在代码冗余、样式...
在Android开发中,自定义标题栏颜色是一项常见的需求,它能帮助开发者打造出具有独特风格的用户界面。本教程将详细讲解如何在Android应用中修改...希望这个教程能帮助你更好地理解和掌握Android标题栏颜色的设置技巧。
### Android标题栏与状态栏的隐藏 #### 一、引言 在Android应用开发中,为了提供更加沉浸式的用户体验或实现特定的设计需求,有时需要隐藏标题栏和状态栏。这两种元素是Android应用界面的重要组成部分,它们可以...
Android 标题栏最右边添加按钮的实例 Android 标题栏最右边添加按钮的实例是 Android 应用程序中常见的功能之一。通过本文,大家可以掌握如何在 Android 标题栏最右边添加按钮,以满足不同应用程序的需求。下面将...
在Android开发中,有时我们需要创建一个类似于iOS通讯录的效果,即在ListView中实现标题固定的功能。这使得用户在滚动列表时,对应的分类标题始终保持可见,提高用户体验。标题固定的ListView在处理大量分组数据时尤...
在Android应用开发中,自定义标题栏是一种常见的需求,它能提供更加个性化和与应用风格一致的用户体验。本文将深入探讨如何在Android中创建一个自定义的标题栏,并且添加一个返回按钮。我们将通过以下几个步骤来实现...
在Android开发中,实现应用程序全屏并隐藏标题栏是一种常见的需求,这通常可以使用户获得更加沉浸式的体验。本文将深入探讨如何在Android中通过动画效果实现这一目标。 首先,我们来了解一下Android应用的基本布局...
在Android开发中,标题隐藏是一种常见的界面设计手法,可以提升应用的美观度和用户体验。"仿照知乎的标题隐藏"通常是指实现类似知乎APP中标题栏动态隐藏与显示的效果。这种效果常见于滚动内容时,标题栏会根据滚动的...