Autore Topic: Button grande quanto il testo e non quanto lo sfondo  (Letto 1005 volte)

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Button grande quanto il testo e non quanto lo sfondo
« il: 24 Agosto 2013, 12:36:18 CEST »
0
Salve!
come da titolo, in un button ho settato una risorsa come background (un immagine quadrata)
Il problema è che ora il bottone risulta molto più alto dei classici bottoni, come faccio a renderlo alto quanto gli altri?
(l'unica soluzione sporca che mi viene in mente, è quella di metterci sotto un bottone invisibile, e rendere l'altezza di quello con lo sfondo, uguale all'altra, ma spero ci sia una soluzione più pulita)

ho provato anche con le nine patch, ma ho ottenuto lo stesso risultato..

« Ultima modifica: 24 Agosto 2013, 12:49:54 CEST da gabric »

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #1 il: 24 Agosto 2013, 14:24:20 CEST »
0
Se usi una risorsa come sfondo di una View non dovrebbe cambiare nulla a livello dimensioni bottone.
Tipo:
Codice (XML): [Seleziona]
android:background="@drawable/my_bg"Vuoi postarci il codice risorsa che usi?
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #2 il: 24 Agosto 2013, 14:27:41 CEST »
0
Codice del button :
<Button android:id="@+id/buttonLogIn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/button" android:text="Log In" android:textColor="#FFFFFF" />Codice della risorsa:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/bottonep" /> <!-- pressed --> <item android:drawable="@drawable/bottone" /> <!-- default --> </selector>

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #3 il: 24 Agosto 2013, 14:30:33 CEST »
0
Ok... da una rapida occhiata credo che i vari align (hai tutti e 4 i bordi vedo) ti sformano il bottone.
Se sei dentro un RelativeLayout ti consiglierei di scegliere una view con cui allinearti e di non attaccarti tutto attorno al contenitore.
Bisognerebbe anche capire che tipo di interfaccia vuoi creare cmq...
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #4 il: 24 Agosto 2013, 16:06:39 CEST »
0
non so perchè il codice si è formattato così male
comunque non ho tutti e 4 gli align, ma solo sopra destra e sinistra (anche perchè sotto ci sono altri bottoni)
questo è come voglio rendere il layout (si lo so, registrati si scrive con una g)



semplicemente è il classico bottone trasparente di android 4.1
voglio far in modo che sia così in tutti i dispositivi, anche i pre 4.1
« Ultima modifica: 24 Agosto 2013, 16:11:51 CEST da gabric »

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #5 il: 24 Agosto 2013, 16:27:00 CEST »
0
Carina come interfaccia. Anche semplice.

Non 4, ma 3 align:
Codice (XML): [Seleziona]
android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true"In questo modo ti si espande per tutta la larghezza del contenitore immagino.

Puoi fare i bottoni a larghezza fissa e poi gli dai un allineamento centrato.
Oppure puoi mettere ognuno dei bottoni in un LinearLayout, aggiungi 2 view laterali al bottone e assegni dei pesi in modo che ti tenga le proporzioni che vuoi.
Hai diverse possibilità insomma, anche in funzione di un cambio di orientamento del dispositivo e di schermi di risoluzioni diverse.

Post unito: 24 Agosto 2013, 16:29:38 CEST
Aggiungo: non capisco neppure quell'align top che hai messo cmq.
Io ragiono a codice e non con l'IDE quindi magari te lo avrà impostato lui.

Se hai un LinearLayout verticale basta che inserisci i tuoi elementi e te li attacca lui uno sotto l'altro.
Se hai un RelativeLayout devi dirgli metti A sotto B (layout_below mi pare)
Se hai altro... è da valutare :)
« Ultima modifica: 24 Agosto 2013, 16:29:38 CEST da matttt, Reason: Merged DoublePost »
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #6 il: 24 Agosto 2013, 16:40:43 CEST »
0
in effetti l'align top è superfluo essendo il primo elemento


mi spiegheresti bene il discorso dei pesi? non l'ho mai capito

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #7 il: 24 Agosto 2013, 16:50:18 CEST »
+1
mi spiegheresti bene il discorso dei pesi? non l'ho mai capito
E' semplice, è proporzionale. Mettiamo che hai 3 view: A B C e vuoi che B sia il doppio delle altre 2 allora metti:
A peso 1
B peso 2
C peso 1
Poi Android per calcolare la larghezza da assegnare fa la somma 1+2+1 e divide
Larghezza A = 1 / 4
Larghezza B = 2 / 4 = 1 / 2
Larghezza C = 1 / 4

Non è male, solo che se hai schermi larghi ti adatta di conseguenza il tutto... e quindi magari ti vengono dei bottoni immensi :)
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #8 il: 24 Agosto 2013, 16:53:36 CEST »
0
a saperlo prima mi sarei risparmiato un sacco di lavoro in altre applicazioni...
invece per quanto riguarda la risorsa dei bottoni con android 4.1 non c'è modo per importarla nel progetto, così che lo stiel sia quello anche nelle versioni precedenti?

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #9 il: 24 Agosto 2013, 16:55:58 CEST »
0
Io mi faccio sempre le interfacce a mano, non mi fido del composer.
Al max lo uso per fare delle prove, ma quando hai capito la logica vai tranquillo.

Cosa intendi "risorsa bottoni per Android < 4.1"?
Nella mia app attuale ho una View con background preso da una risorsa e ho usato API 10 (quindi Android 2.3.X)
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #10 il: 24 Agosto 2013, 16:59:35 CEST »
0
no nel senso.
in android 8, ad esempio, di default i bottoni sono grigi con i bordi arrotondati
in android 11+ (se non sbaglio) di default i bottoni sono trasparenti al 80% con i bordi rigidi
quindi fanno riferimento a due diverse risorse.
Se io volessi i bottoni in stile jelly bean anche quando l'app gira su froyo, dovrei settare il background con la risorsa di android 4.1
il problema è come accedere a questa risorsa che è sicuramente presente nel mio sdk
spero si capisca cosa intendo

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #11 il: 24 Agosto 2013, 17:06:18 CEST »
0
Se non sbaglio ti basta mettere la risorsa nella cartella giusta.
Tipo se metti il tuo XML con lo sfondo del bottone semplicemente in res/drawable dovresti essere apposto.
Fai una prova magari.
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #12 il: 24 Agosto 2013, 17:07:51 CEST »
0
si lo so. il problema è che non so dove prendere questa risorsa.

Offline matttt

Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #13 il: 24 Agosto 2013, 17:16:50 CEST »
0
si lo so. il problema è che non so dove prendere questa risorsa.
Mettiamola così: nella mia app io ho messo la risorsa sfondo in /res/drawable
E sull'emulatore funzia, sul mio cell con 2.3.6 funzia, sul mio tablet con 4.3 funzia e la gente che se l'è scaricata finora non si è lamentata quindi immagino sia ok. Ti ho convinto? :D
Le mie apps su Google Play Store:

Offline gabric

  • Utente senior
  • ****
  • Post: 615
  • Respect: +18
    • Google+
    • Mostra profilo
    • Brancato's site
  • Dispositivo Android:
    Nexus 5 / Tablet mediacom s4
  • Play Store ID:
    Brancato's+app
  • Sistema operativo:
    window7. ubuntu
Re:Button grande quanto il testo e non quanto lo sfondo
« Risposta #14 il: 24 Agosto 2013, 17:18:34 CEST »
0
non è questo il punto. non ci siamo capiti.
So che se metto la risorsa in drawable viene presa da tutte le risoluzioni, sopratutto se non la trovano nella cartella relativa.
Il punto è che finiscamente non ho la risorsa.
ed essendo una risorsa standard, mi chiedevo come ottenerla.