Se commenti la parte che va da
Drawable drw = getResources().getDrawable(R.drawable.cane);
a
stop.setBackgroundDrawable(drw2) ;
l'app parte?
Se commenti la parte che va da
Drawable drw = getResources().getDrawable(R.drawable.cane);
a
stop.setBackgroundDrawable(drw2) ;
l'app parte?
Fai una prova giusto per curiosità:
in questa funzione
Drawable drw2 = new BitmapDrawable(Bitmap.createScaledBitmap(bmp, stop.getWidth(), stop.getHeight(), true));
al posto di stop.getWidth() e stop.getHeight(), metti due valori fissi.
Soprattutto ho un dubbio su
stop.setId(-1);
prova a mettere un valore maggiore di 1
ho provato a mettere come due valori fissi 10 e 10 e adesso funziona..il setId(-1) non mi da nessun problema..ora mi chiedo, come faccio ad adattare l'immagine al bottone? Faccio stop.setWidth() e stop.setHeight() utilizzando gli stessi numeri? Le dimensioni sono indicate in pixel giusto?
In teoria dovrebbero bastare stop.setWidth() e stop.setHeight(), fai una prova e fammi sapere come va.
Però se fossi in te però, per curiosità farei anche una prova del genere, dopo aver creato il button e prima di Drawable drw2 = new BitmapDrawable(Bitmap.createScaledBitmap(bmp, stop.getWidth(), stop.getHeight(), true)); inserici:
int w = stop.getWidth();
int h = stop.getHeight();
e vedere cosa ti restituiscono
Credo che tu chiami getWidth() e getHeight() troppo presto, il Button non è ancora stato dimensionato.
Sinceramente però non saprei aiutarti su quello (io uso sempre i layout nelle App) forse puoi provare ad impostare tu le dimensioni, ma rischi di avere problemi su device con screen differenti.
Se vuoi provare avendo il codice già in mano aperto a cambiare il Button con l'ImageButton puoi impostargli una immagine (mi pare con setImageResource(R.drawable.cane) nel caso tuo ) e puoi anche impostargli lo ScaleType (setScaleType(ImageView.ScaleType.FIT_XY) dovrebbe fare al caso tuo)
Vedi se ottieni quello che desideri (con i sorgenti aperti dovrebbe essere questione di 5 minuti provare)
Felice possessore di un LG O1 con GingerLOL 1.5.2 e di unMediacom Smartpad 810c con Pistoneone 4.2.1 / 5.0Samsung Galaxy Tab 10.1 P7510 (originale per ora)Mediacom Smartpad 715i (ROM smartpao 2.1), Mediacom Smartpad 842i (ROM smartpao 2.0)
Mini-Forum-FAQ per Mediacom Smartpad 810c
ma quindi per dimensionare le immagini mi conviene lavorare nel main.xml, in modo da non avere risultati differenti su dispositivi differenti? se però devo creare 20 bottoni devo scrivere 20 volte il codice per il bottone sia nel file xml che nel file java..giusto?
Se utilizzi il tool grafico non devi scrivere da zero il file .xml, al massimo puoi apportare delle modifiche. Nel file java non devi ricreare il bottone con tutte le sue caratteristiche ma semplicemente modificare quelle che ti interessano.
Se hai 20 bottoni è chiaro che devi creare 20 handler di Button. Al massimo a livello java potresti creare un array di bottoni, ma non ho mai provato a farlo.
nel mio caso, utilizzando solo java ho creato un array di bottoni..se però devo creari 20 bottoni nel file xml e poi associarli ad istanze della classe Button in java poi creare l'array non mi da più nessun vantaggio dato che l'associazione va fatta per ogni oggetto
Una volta che hai effettuato l'associazione puoi continuare comunque a usarli come array, sicuramente fare l'associazione di oggetti creati nel file xml è un pò più lungo...