如何使用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