Saya mengalami kesulitan menerapkan latar belakang gradien ke LinearLayout.
Ini seharusnya relatif sederhana dari apa yang saya baca tetapi sepertinya tidak berhasil. Demi referensi saya sedang mengembangkan pada 2.1-update1.
header_bg.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="90"
android:startColor="#FFFF0000"
android:endColor="#FF00FF00"
android:type="linear"/>
</shape>
main_header.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="50dip"
android:orientation="horizontal"
android:background="@drawable/header_bg">
</LinearLayout>
Jika saya mengubah @ drawable / header_bg ke warna - mis. # FF0000 berfungsi dengan baik. Apakah saya melewatkan sesuatu yang jelas di sini?
Jawaban:
Ok, saya sudah berhasil menyelesaikan ini menggunakan pemilih. Lihat kode di bawah ini:
main_header.xml:
main_header_selector.xml:
Semoga ini membantu seseorang yang memiliki masalah yang sama.
sumber
Dimungkinkan juga untuk memiliki warna ketiga (tengah). Dan berbagai macam bentuk.
Misalnya di drawable / gradient.xml:
Ini memberi Anda hitam - abu - abu (kiri ke kanan) yang merupakan atm latar belakang gelap favorit saya.
Ingatlah untuk menambahkan gradient.xml sebagai latar belakang dalam tata letak Anda xml:
Dimungkinkan juga untuk memutar, dengan:
memberi Anda garis vertikal
dan dengan
memberi Anda garis horizontal
Kemungkinan sudut adalah:
Juga ada beberapa jenis bentuk:
Bentuk bulat:
dan mungkin beberapa lagi.
Semoga ini bisa membantu, tepuk tangan!
sumber
Dalam File Drawable XML:
Dalam file tata letak Anda: android: background = "@ drawable / gradient_background"
sumber
Coba hapus android: gradientRadius = "90". Inilah salah satu yang bekerja untuk saya:
sumber
Masalah saya adalah ekstensi .xml tidak ditambahkan ke nama file dari file XML yang baru dibuat. Menambahkan ekstensi .xml memperbaiki masalah saya.
sumber
Dengan Kotlin Anda dapat melakukannya hanya dalam 2 baris
Ubah nilai warna dalam array
Hasil
sumber
Saya tidak tahu apakah ini akan membantu siapa pun, tetapi masalah saya adalah saya mencoba mengatur gradien ke properti "src" dari ImageView seperti:
Tidak 100% yakin mengapa itu tidak berhasil, tapi sekarang saya mengubahnya dan meletakkan drawable di properti "latar belakang" dari induk ImageView, yang merupakan RelativeLayout dalam kasus saya, seperti: (ini berhasil)
sumber
Saya akan memeriksa saluran alpha Anda pada warna gradien Anda. Bagi saya, ketika saya menguji kode saya, saya memiliki saluran alpha salah pada warna dan itu tidak berhasil untuk saya. Setelah saya mendapatkan saluran alpha, semuanya bekerja!
sumber
Anda dapat menggunakan tampilan khusus untuk melakukan itu. Dengan solusi ini, selesai bentuk gradien dari semua warna di proyek Anda:
Saya juga membuat proyek open source GradientView dengan tampilan khusus ini:
https://github.com/lopspower/GradientView
sumber