Χαιρετώ την κοινότητα.
Χρειάζομαι τα φώτα σας, αγαπητοί/ές!
Σε μια εφαρμογή Android που φτιάχνω, προσπαθώ να πετύχω να αλλάζει το background ενός Button ανάμεσα σε διάφορα gradients κάθε φορά που το ‘χτυπάει’ ο χρήστης.
Τα gradients τα φτιάχνω σε αρχείο το καθένα στον φάκελο drawable, του οποίου τα περιεχόμενα είναι του τύπου:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
android:type="linear"
android:angle="0"
android:startColor="#dddddd"
android:endColor="#ffeed4" />
</shape>
Το ερώτημά μου είναι, αν το παραπάνω βήμα είναι σωστό, ποιο είναι το επόμενο, μέσα στο MainActivity.java, ώστε προγραμματιστικά να αλλάζω το background στο παραπάνω gradient;
Μέχρι στιγμής έχω δοκιμάσει το εξής (αν υποθέσουμε ότι το κουμπί ονομάζεται ‘card’, και το όνομα του αρχείου στο οποίο έχω ορίσει το gradient είναι ‘gr0’):
card.setBackgroundResource(R.drawable.gr0);
το οποίο όμως δεν δουλεύει.
Σας ευχαριστώ εκ των προτέρων για κάθε βοήθεια!
Edit: Ένας καλός φίλος μού έδωσε τη λύση. Το σημαντικό είναι ότι το Button
δεν μπορεί να έχει background τέτοιου είδους, οπότε πρέπει να χρησιμοποιηθεί ImageButton
.
Στην περίπτωση που θέλουμε το κουμπί να εμφανίζει και κείμενο, τότε πρέπει να μπει μαζί με ένα TextView
σε ένα RelativeLayout
.