Autore Topic: Bordi solo in alto, sinistra e destra  (Letto 234 volte)

Offline Giacomo79

  • Utente junior
  • **
  • Post: 123
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus One
  • Play Store ID:
    Big and Fish
  • Sistema operativo:
    Android 2.3
Bordi solo in alto, sinistra e destra
« il: 08 Ottobre 2014, 18:37:34 CEST »
0
Salve a tutti,
ho la necessità di mettere i bordi a un ImageButton, ma solo su 3 lati.
Sto provando questo stile ma senza successo (tutti i lati hanno i bordi):
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:top="1dp" android:left="1dp" android:right="1dp" android:bottom="0dp">
        <shape android:shape="rectangle">
                <stroke android:width="5dp" android:color="@color/violet" />
        </shape>
        </item>
</layer-list>
Dove sbaglio?

Grazie

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 774
  • Respect: +161
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 10 x64
Re:Bordi solo in alto, sinistra e destra
« Risposta #1 il: 08 Ottobre 2014, 23:32:28 CEST »
0
Il tuo esempio non funziona perché top, left, bottom e right dell'item nel layer-list rappresentano gli scostamenti dal bordo, non la dimensione del bordo. In pratica stai istruendo Android che il rettangolo (con un tratto 5dp) deve avere 1dp di distanza tra l'area disponibile su tutti i lati tranne quello in basso.

Non esiste un metodo pulito per fare quello che vuoi con le shape: come vedi c'è solo un parametro che rappresenta la dimensione del tratto.

Un workaround consiste nel far uscire dai margini il bordo in modo che non sia visualizzato utilizzando uno scostamento negativo, ma potrebbe dare adito a side-effect in certi contesti. Prova così:

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
        <item android:top="0dp" android:left="0dp" android:right="0dp" android:bottom="-5dp">
        <shape android:shape="rectangle">
                <stroke android:width="5dp" android:color="@color/violet" />
        </shape>
        </item>
</layer-list>
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.