如何使用androids默认窗口标题样式来创建自己的类似TextView
?在Android上创建自定义标题视图
我做了很多猜测,并使TextView拥有默认标题栏所具有的一切,除了文本阴影(以及一些填充/边距等,我认为)。
这里的基本上就是我已经试过:
MainUI.xml
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);
}
title_bar.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTitle"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:textAppearance="@android:style/TextAppearance.WindowTitle"
android:background="@android:drawable/title_bar"
android:text="This is my new title" />
编辑:
我发现了一些有趣的相关文章在makemachine和anddev。
尽管我不喜欢它,但我从实施style.xml中复制了一些属性。
有没有办法避免以这种静态方式复制属性?
以下渲染几乎完美,其实不同之处在于原来做了“剪切”的第一个2-3像素的标题阴影,而我的TextView
没有。
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTitle"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center_vertical"
android:shadowColor="#BB000000"
android:shadowRadius="2.75"
android:singleLine="true"
android:textAppearance="@android:style/TextAppearance.WindowTitle"
android:background="@android:drawable/title_bar"
android:text="This is my new title" />
这也是很重要的替代默认的Android:windowTitleBackgroundStyle用透明色,因为默认包括一些填充等,你不希望被包裹你的自定义标题栏。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="android:Theme">
<item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
</style>
</resources>
记住启用主题在你的AndroidManifest.xml
我不明白你想要做什么。你是否愿意复制Android制作的默认标题栏? – Macarse 2010-07-11 01:42:12
是的,只要我可以修改它。我希望标题栏也可以用作进度条:-) – Steinbitglis 2010-07-11 07:27:21
不知道这是否有用,但[RomManager](https://market.android.com/details?id=com.koushikdutta.rommanager&hl= en)在你下载ROM时会这样做,标题栏在加载时从左到右填充灰色。如果你在运行Hierarchy viewer时运行它,你可以看到他们有进度条和进度圈。 – 2011-06-03 20:22:12