Θέλω να δημιουργήσω φόντο διαβάθμισης όπου η διαβάθμιση είναι στο πάνω μισό και υπάρχει ένα συμπαγές χρώμα στο κάτω μισό, όπως στην παρακάτω εικόνα:
Δεν μπορώ't επειδή το centerColor
εξαπλώνεται για να καλύψει το κάτω και το πάνω μέρος.
Πώς μπορώ να φτιάξω ένα φόντο σαν την πρώτη εικόνα; Πώς μπορώ να φτιάξω ένα μικρό centerColor
που δεν απλώνεται;
Αυτός είναι ο κώδικας στην XML του παραπάνω κουμπιού φόντου.
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<gradient
android:startColor="#6586F0"
android:centerColor="#D6D6D6"
android:endColor="#4B6CD6"
android:angle="90"/>
<corners
android:radius="0dp"/>
</shape>
Μπορείτε να δημιουργήσετε αυτή την εμφάνιση 'μισής διαβάθμισης' χρησιμοποιώντας μια Layer-List xml για να συνδυάσετε την επάνω και την κάτω 'ζώνη' σε ένα αρχείο. Κάθε ζώνη είναι ένα σχήμα xml.
Δείτε αυτή την προηγούμενη απάντηση στο SO για μια λεπτομερή καθοδήγηση: Multi-gradient shapes.
Πρώτα πρέπει να δημιουργήσετε ένα gradient.xml ως εξής
<shape>
<gradient android:angle="270" android:endColor="#181818" android:startColor="#616161" />
<stroke android:width="1dp" android:color="#343434" />
</shape>
Στη συνέχεια, πρέπει να αναφέρετε την παραπάνω κλίση στο φόντο της διάταξης.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/gradient"
>
</LinearLayout>
Γιατί να μην δημιουργήσετε μια εικόνα ή μια εικόνα 9 Patch και να τη χρησιμοποιήσετε;
Ο παρακάτω σύνδεσμος έχει έναν ωραίο οδηγό για το πώς να το κάνετε:
http://android.amberfog.com/?p=247
Αν επιμένετε να χρησιμοποιείτε ένα σχήμα, δοκιμάστε τον παρακάτω ιστότοπο (επιλέξτε Android κάτω αριστερά): http://angrytools.com/gradient/
Έχω δημιουργήσει μια παρόμοια διαβάθμιση (όχι ακριβή) με αυτή που έχετε σε αυτόν τον σύνδεσμο: http://angrytools.com/gradient/?0_6586f0,54_4B6CD6,2_D6D6D6&0_100,100_100&l_269