Saya rasa tidak perlu menggunakan judul khusus untuk mengubah warna latar belakang menjadi bilah judul. periksa posting ini
Deepthi Jabili
Saya akan melihat jawaban Edwinfad daripada jawaban lama yang diterima.
zgc7009
Jawaban:
186
Utas ini akan membantu Anda memulai dengan membuat bilah judul Anda sendiri dalam file xml dan menggunakannya dalam aktivitas Anda
Edit
Berikut adalah ringkasan singkat dari konten tautan di atas - Ini hanya untuk mengatur warna teks dan latar belakang bilah judul - tanpa pengubahan ukuran, tanpa tombol, hanya sampel paling sederhana
res / layout / mytitle.xml - Ini adalah tampilan yang akan mewakili bilah judul
<?xml version="1.0" encoding="utf-8"?><TextViewxmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/myTitle"android:text="This is my new title"android:layout_width="fill_parent"android:layout_height="fill_parent"android:textColor="@color/titletextcolor"/>
res / values / themes.xml - Kami ingin mempertahankan tema android default dan hanya perlu mengubah warna latar belakang latar belakang judul. Jadi kami membuat tema yang mewarisi tema default dan menyetel gaya latar belakang ke gaya kami sendiri.
Sebagian besar waktu hanya menyediakan tautan adalah jawaban yang sangat murah, dan di stackoverflow tidak terlalu disukai. Cobalah untuk mendapatkan sedikit pengetahuan dari link ke halaman ini. Anda akan mendapatkan lebih banyak pengetahuan di komunitas, dan meskipun link turun jawaban Anda tetap memberikan beberapa istilah pencarian yang dapat mengarahkan orang lain ke arah tersebut.
Janusz
7
@ Janusz: Anda benar sekali - Jadi saya memperbarui kiriman dengan contoh yang paling sederhana sehingga orang dapat memulai daripada membaca utas di tautan di atas
ccheneson
3
Setelah menimpa gaya android Anda tidak perlu menambahkan judul khusus dari kode jika Anda hanya ingin mengubah warna latar belakang
Janusz
1
Seperti yang dikatakan Janusz, Anda tidak perlu memiliki Tampilan kustom jika Anda hanya ingin mengganti gaya yang digunakan (tidak menambahkan Tampilan baru). Dalam hal ini Anda juga tidak perlu meminta FEATURE_CUSTOM_STYLE. Terakhir, Anda dapat menentukan gaya tingkat aplikasi untuk diterapkan ke semua aktivitas Anda sekaligus. Terima kasih untuk kodenya.
Eric Kok
2
ini tidak mengubah warna latar belakang judul hanya warna teks yang berubah. bahkan jika saya mengubah warna bilah judul <color name = "titlebackgroundcolor"> # 3232CD </color>. Apakah saya melakukan sesuatu yang salah?
Shaista Naaz
18
Terima kasih atas penjelasan yang jelas ini, namun saya ingin menambahkan sedikit lebih banyak pada jawaban Anda dengan mengajukan pertanyaan yang ditautkan (tidak benar-benar ingin membuat posting baru karena ini adalah basement dari pertanyaan saya).
Saya mendeklarasikan gelar saya di Superclass yang, semua aktivitas saya lainnya adalah anak-anak, harus mengubah warna bilah hanya sekali. Saya juga ingin menambahkan ikon dan mengubah teks di bilah. Saya telah melakukan beberapa pengujian, dan berhasil mengubah salah satu atau yang lain tetapi tidak keduanya pada saat yang sama (menggunakan setFeatureDrawable dan setTitle). Solusi yang ideal tentu saja mengikuti penjelasan di utas yang diberikan di tautan, tetapi ketika saya mendeklarasikan di superclass, saya memiliki masalah karena tata letak di setContentView dan R.id.myCustomBar, karena jika saya ingat baik-baik saya bisa memanggil setContentView hanya sekali ...
EDIT
Menemukan jawaban saya:
Bagi mereka yang, seperti saya, suka bekerja dengan superclass karena bagus untuk mendapatkan menu yang tersedia di mana saja dalam aplikasi, cara kerjanya sama di sini.
Ada cara lain untuk mengubah warna latar belakang, namun ini adalah retasan dan mungkin gagal pada versi Android mendatang jika hierarki Tampilan Jendela dan judulnya diubah. Namun, kodenya tidak akan macet, hanya melewatkan pengaturan warna yang diinginkan, dalam kasus seperti itu.
sangat bagus dan sederhana juga. Tetapi saya ingin menanyakan satu hal kepada Anda bahwa yang satu ini melakukannya dari kode sehingga sedikit tertunda. Untuk menghindari situasi seperti itu, saya harus menulis semuanya di xml dan tidak ada apa pun di kode. jadi bisakah Anda membimbing saya dalam hal itu?
Shaista Naaz
Saya pikir Anda memiliki solusi dalam jawaban yang dipilih di atas. Anda perlu mendefinisikan tema khusus untuk aktivitas dan menyetel android: windowTitleBackgroundStyle ke warna yang Anda inginkan.
mikeplate
7
Kode ini membantu mengubah latar belakang bilah judul secara terprogram di Android. Ubah warna menjadi warna yang Anda inginkan.
Ini diperkenalkan di API 11 (3.0 Honeycomb) yang tentunya cukup usang saat ini untuk menganggap ini sebagai opsi yang valid.
zgc7009
Tapi saya masih menggunakannya di semua aplikasi terbaru saya dengan targetSdkVersion = "23" tanpa mendapatkan info yang tidak berlaku lagi.
Edwinfad
Tentu saja, 100% baik-baik saja untuk menggunakan ini. Ini belum diganti dengan apa pun, tetapi menggunakannya sebelum API 11 (yang akan dilakukan oleh sedikit orang) harus dihindari, setidaknya tanpa pustaka kompatibilitas.
zgc7009
Dicatat. @ zgc7009
Edwinfad
1
Gunakan getSupportActionBar () sebagai gantinya jika Anda menggunakan AppCompatActivity
Bagaimana / di mana saya bisa membuat bilah judul khusus / sendiri?
Thizzer
2
Lihat platforms/android-2.1/data/res/layout/screen.xmlSDK. Tampaknya menentukan judul di sana. Anda dapat sering memeriksa tata letak seperti ini dan meminjam
style="?android:attr/windowTitleStyle"
gaya yang kemudian dapat Anda gunakan dan timpa dalam TextView Anda sendiri.
Anda bahkan dapat memilih judul untuk penyesuaian langsung dengan melakukan:
TextView title =(TextView)findViewById(android.R.id.title);
Segalanya tampak menjadi lebih baik / mudah sejak Android 5.0 (API level 21).
Saya pikir yang Anda cari adalah seperti ini:
<stylename="AppTheme"parent="AppBaseTheme"><!-- Top-top notification/status bar color:--><!--<item name="colorPrimaryDark">#000000</item>--><!-- App bar color:--><item name="colorPrimary">#0000FF</item></style>
Jawaban:
Utas ini akan membantu Anda memulai dengan membuat bilah judul Anda sendiri dalam file xml dan menggunakannya dalam aktivitas Anda
Edit
Berikut adalah ringkasan singkat dari konten tautan di atas - Ini hanya untuk mengatur warna teks dan latar belakang bilah judul - tanpa pengubahan ukuran, tanpa tombol, hanya sampel paling sederhana
res / layout / mytitle.xml - Ini adalah tampilan yang akan mewakili bilah judul
res / values / themes.xml - Kami ingin mempertahankan tema android default dan hanya perlu mengubah warna latar belakang latar belakang judul. Jadi kami membuat tema yang mewarisi tema default dan menyetel gaya latar belakang ke gaya kami sendiri.
res / values / styles.xml - Di sinilah kita mengatur tema untuk menggunakan warna yang kita inginkan untuk latar belakang judul
res / values / colors.xml - Setel di sini warna yang Anda inginkan
Di AndroidMANIFEST.xml , setel atribut tema baik dalam aplikasi (untuk seluruh aplikasi) atau dalam aktivitas (hanya aktivitas ini) tag
Dari Aktivitas (disebut CustomTitleBar):
sumber
Terima kasih atas penjelasan yang jelas ini, namun saya ingin menambahkan sedikit lebih banyak pada jawaban Anda dengan mengajukan pertanyaan yang ditautkan (tidak benar-benar ingin membuat posting baru karena ini adalah basement dari pertanyaan saya).
Saya mendeklarasikan gelar saya di Superclass yang, semua aktivitas saya lainnya adalah anak-anak, harus mengubah warna bilah hanya sekali. Saya juga ingin menambahkan ikon dan mengubah teks di bilah. Saya telah melakukan beberapa pengujian, dan berhasil mengubah salah satu atau yang lain tetapi tidak keduanya pada saat yang sama (menggunakan setFeatureDrawable dan setTitle). Solusi yang ideal tentu saja mengikuti penjelasan di utas yang diberikan di tautan, tetapi ketika saya mendeklarasikan di superclass, saya memiliki masalah karena tata letak di setContentView dan R.id.myCustomBar, karena jika saya ingat baik-baik saya bisa memanggil setContentView hanya sekali ...
EDIT Menemukan jawaban saya:
Bagi mereka yang, seperti saya, suka bekerja dengan superclass karena bagus untuk mendapatkan menu yang tersedia di mana saja dalam aplikasi, cara kerjanya sama di sini.
Tambahkan saja ini ke superclass Anda:
(Anda harus mendeklarasikan textview sebagai variabel kelas yang dilindungi)
Dan kekuatannya adalah, di mana pun di aplikasi Anda (jika misalnya semua aktivitas Anda adalah anak-anak di kelas ini), Anda hanya perlu menelepon
dan batang judul Anda akan diedit.
XML yang terkait dalam kasus saya adalah (R.layout.customtitlebar):
sumber
Ada cara lain untuk mengubah warna latar belakang, namun ini adalah retasan dan mungkin gagal pada versi Android mendatang jika hierarki Tampilan Jendela dan judulnya diubah. Namun, kodenya tidak akan macet, hanya melewatkan pengaturan warna yang diinginkan, dalam kasus seperti itu.
Dalam Aktivitas Anda, seperti onCreate, lakukan:
sumber
Kode ini membantu mengubah latar belakang bilah judul secara terprogram di Android. Ubah warna menjadi warna yang Anda inginkan.
sumber
pada kode di atas Anda dapat mencoba Anda dapat menggunakan judul bukan titlebar ini akan mempengaruhi semua aktivitas di aplikasi Anda
sumber
Saya kira tidak. Anda dapat membuat aktivitas tanpa judul dan membuat bilah judul Anda sendiri dalam tata letak aktivitas.
Periksa ini , Baris 63 dan di bawah:
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_title_1)
menyetel tampilan khusus, bukan tampilan judul default.
sumber
Lihat
platforms/android-2.1/data/res/layout/screen.xml
SDK. Tampaknya menentukan judul di sana. Anda dapat sering memeriksa tata letak seperti ini dan meminjamstyle="?android:attr/windowTitleStyle"
gaya yang kemudian dapat Anda gunakan dan timpa dalam TextView Anda sendiri.Anda bahkan dapat memilih judul untuk penyesuaian langsung dengan melakukan:
sumber
Coba dengan kode berikut
juga menggunakan tautan ini yang sangat berguna: http://nathanael.hevenet.com/android-dev-changing-the-title-bar-background/
sumber
Ada alternatif yang lebih mudah untuk mengubah warna bilah judul, dengan menggunakan pustaka dukungan v7 appcompat yang disediakan oleh Google.
Lihat tautan ini tentang cara menyiapkan pustaka dukungan ini: https://developer.android.com/tools/support-library/setup.html
Setelah Anda selesai melakukannya, cukup menambahkan baris berikut ke file res / values / styles.xml Anda:
(dengan asumsi bahwa "titlebackgroundcolor" ditentukan dalam res / values / colors.xml Anda, misalnya:
)
sumber
Segalanya tampak menjadi lebih baik / mudah sejak Android 5.0 (API level 21).
Saya pikir yang Anda cari adalah seperti ini:
Lihat di sini untuk referensi:
https://developer.android.com/training/material/theme.html#ColorPalette
sumber
Saya telah melakukan ini dengan mengubah nilai warna gaya di "res" -> "values" -> "colors.xml"
Ini akan mengubah warna untuk keseluruhan proyek yang tidak masalah bagi saya.
sumber
kamu bisa menggunakannya.
sumber
Tempel kode ini setelah setContentView atau ke onCreate
jika Anda memiliki kode warna, gunakan ini;
jika Anda menginginkan kode tertentu dari perpustakaan Warna gunakan ini;
sumber