Ci sono due pulsanti grafici adiacenti. Se utilizzo il metodo di calcolo delle coordinate, tocca TouchEvent
, devo creare una vasta gamma di coordinate. Forse c'è un altro metodo?Come impostare il pulsante con un poligono di contorno? Android
risposta
Probabilmente non è la soluzione migliore, ma si potrebbe sovrapporre due pulsanti ognuno dei quali rappresenta una parte dell'immagine (nero o bianco) e fare il resto dell'immagine s' il Button
trasparente (le immagini avranno la stesse dimensioni per entrambi i pulsanti). Sarà inoltre necessario estendere la classe Button
per ignorare il modo in cui il metodo onTouchEvent
gestisce gli eventi tattili, a seconda del punto in cui il tocco si è verificato in un punto trasparente o in un punto "immagine". Ho fatto un piccolo progetto di esempio l'ottenimento di un Button
con due parti come di seguito (ignorare le mie abilità di progettazione):
È possibile trovare il project here, è piuttosto auto esplicativo. Vedi se ti aiuta.
Grazie per la soluzione. Mi ha aiutato. Tuttavia, ho riscontrato un problema con il tuo campione. Se il drawable non è in "wrap_content" (ad esempio, fill_parent), il progetto si bloccherà. Ho risolto creando la bitmap così:. bitmap b = Bitmap.createScaledBitmap ( \t \t ((BitmapDrawable) bkg.getCurrent()) getBitmap(), \t \t getWidth(), \t \t getHeight (), \t \t true \t); –
@Sebastien Hai ragione, il mio codice non ha preso in considerazione la modifica della dimensione della vista (o maggiore della stessa Bitmap). Ho corretto il campione e sto ridimensionando il 'Bitmap' nel callback' onSizeChanged' in modo che abbia sempre la dimensione corretta. – Luksprog
La tua soluzione è migliore che la mia (per farlo in onSizeChanged). Grazie ancora :) Tuttavia, l'ho migliorato di nuovo, prima di creare la bitmap, ho aggiunto questo codice: // Bitmap occupa molto spazio nella memoria, libera la memoria il prima possibile \t if (mBitmap! = Null) { \t mBitmap.recycle(); \t} –
Che aspetto hanno esattamente i pulsanti? – Luksprog
No, il design non è finito, ora sto a un bivio, voglio fare un pulsante trapezoidale, se trovo una soluzione al mio problema – Roman