2016-01-10 27 views
7

Ho un'immagine come sotto.Come creare un pulsante di azione mobile "solo immagine"

enter image description here

quando lo uso per fare un pulsante di azione galleggiante, il pulsante assomiglia a questo.

enter image description here

non voglio il margine rosa. Voglio solo che la mia immagine sia mostrata. Cosa dovrei fare?

Voglio anche che la dimensione della mia immagine sia il cerchio esterno e non quello interno.

Ecco il mio codice:

<android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_refresh" /> 
+0

modificando l'attributo src imposterà solo l'icona drawable che hanno dimensione fissa. Non si dovrebbe cambiare neanche l'attributo dello sfondo. Perché non cambiare la tonalità dello sfondo in verde e impostare l'icona con solo la freccia? Altrimenti penso che dovresti usare un imagebutton personalizzato. – Magnas

risposta

6

Avete considerato di usare solo un ImageView?

<ImageView 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:clickable="true" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_refresh" /> 

che nella vostra ActivityMain.java

ImageView v = (ImageView) findViewById(R.id.fab); 
v.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    // Your code here 
    } 
}); 

O più precisamente un ImageButton?

<ImageButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/ic_refresh" /> 

Than:

ImageButton v = (ImageButton) findViewById(R.id.fab); 
v.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    // Your code here 
    } 
}); 
+1

Grazie, funziona. Android Studio mi ha dato il pulsante di azione mobile quando creo una nuova attività a schede. Pensavo che usare FAB fosse necessario per l'attività a schede per mostrare un pulsante mobile. Ma ora sono sicuro che non lo è. –

5

non sono sicuro che questa soluzione accettabile, ma funziona;

È possibile sostituire la dimensione della dimensione dell'immagine per l'immagine nidificata in FAB. Basta aggiungere al proprio file dimens:

<dimen tools:override="true" name="design_fab_image_size">56dp</dimen> (ho usato 56dp causare dimensioni fab nelle linee guida è 56dp)

strumenti: Override = "true" - questa è la cosa per cui suppongo che questa soluzione non è buona , causa "design_fab_image_size" - è definitivo, e dovresti insistere per ignorare :)

+0

questo ha funzionato per me. Nel caso in cui qualcuno si chieda dove aggiungere questo, è nei tuoi valori-> dimens.xml. Non dimenticare di aggiungere 'android: scaleType =" fitCenter "' nel tuo 'FloatingActionButton'. – Polar

0

Puoi semplicemente impostare la dimensione dell'icona su 56px in Illustrator/Photoshop. Quindi assicurati di aggiungere android:backgroundTint="@android:color/transparent" per rendere trasparente il colore favoloso.

1

creare una classe estende FloatingActionButton e aggiungere queste righe nel costruttore

super(context, attrs); 
Method method = getClass().getSuperclass().getDeclaredMethod("getSizeDimension"); 
method.setAccessible(true); 
Object r = method.invoke(this); 
Field f = super.getClass().getSuperclass().getDeclaredField("mMaxImageSize"); 
f.setAccessible(true); 
f.set(this, r); 
Problemi correlati