Jak używać iroids domyślnego stylu tytułu okna, aby utworzyć własne podobne TextView
?Ustaw niestandardowy widok tytułowy z domyślnych ustawień w Androidzie
Zrobiłem wiele zgadywania i stworzyłem TextView, który ma wszystko, co ma domyślny pasek tytułu, z wyjątkiem cienia tekstu (i trochę dopełnienia/marginesów itp.).
Oto zasadniczo co próbowałem:
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" />
EDIT:
znalazłem kilka ciekawych artykułów związanych pod adresem makemachine i anddev.
Mimo że mi się to nie podoba, skopiowałem niektóre atrybuty z implementacji style.xml.
Czy istnieje sposób na uniknięcie kopiowania atrybutów w ten statyczny sposób?
Następujące renderowane prawie idealnie, różnica polega na tym, że oryginał "obcina" pierwsze 2-3 piksele cienia tytułu, podczas gdy mój TextView
nie.
<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" />
Ważne jest również, aby zastąpić domyślny android: windowTitleBackgroundStyle z przezroczystym kolorem, ponieważ domyślna zawiera pewne dopełnienie itd., Które nie chcą być owijając swój niestandardowy pasek tytułowy.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CustomTheme" parent="android:Theme">
<item name="android:windowTitleBackgroundStyle">@android:color/transparent</item>
</style>
</resources>
Pamiętaj, aby umożliwić temat w AndroidManifest.xml
Nie dostaję tego, co próbujesz zrobić. Czy chcesz skopiować domyślny pasek tytułu wykonany przez Androida? – Macarse
Tak, o ile mogę go zmodyfikować. Chcę, aby pasek tytułu pełnił także funkcję paska postępu :-) – Steinbitglis
Nie wiem, czy to pomoże, czy nie, ale [RomManager] (https://market.android.com/details?id=com.koushikdutta.rommanager&hl= en) robi to, gdy idziesz do pobierania ROM-ów, pasek tytułu wypełnia się szarością od lewej do prawej podczas ładowania. jeśli uruchomisz go podczas działania przeglądarki Hierarchy, zobaczysz pasek postępu i koło postępu. –