Autore Topic: custom keyboard e horizontal Gap  (Letto 478 volte)

Offline jox

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
custom keyboard e horizontal Gap
« il: 02 Dicembre 2015, 22:54:32 CET »
0
Ciao ragazzi! sono nuova, ho letto il regolamento e ho cercato nel forum, ma non ho trovato topic che facessero al caso mio, come da titolo sto cercando di creare una keyboard personalizzata, ho già letto i tutorial qui sul forum e anche numerose guide su internet tra cui  Create A Custom Keyboard on Android - Envato Tuts+ Code Tutorial[/url] ma niente sembra risolvere il mio problema. In pratica vorrei avere dello spazio tra i tasti della mia tastiera (horizontal gap) ma anche spazio nei bordi esterni cioè vorrei una classica keybard android come questa ho provato a modificare i valori di horizontal gap sia a livello di keyboard sia a livello di key ma non ottengo gli effetti desiderati, tutto ciò che sono riuscita ad ottenere lo trovate nel codice seguente

Codice (XML): [Seleziona]
<Keyboard xmlns:android="[url]http://schemas.android.com/apk/res/android"
   android:keyWidth="10%p"
   android:horizontalGap="2px"
   android:verticalGap="10px"
   android:keyHeight="50dp"
   >
    <Row  >
        <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyLabel="2"/>
        <Key android:codes="51" android:keyLabel="3"/>
        <Key android:codes="52" android:keyLabel="4"/>
        <Key android:codes="53" android:keyLabel="5"/>
        <Key android:codes="54" android:keyLabel="6"/>
        <Key android:codes="55" android:keyLabel="7"/>
        <Key android:codes="56" android:keyLabel="8"/>
        <Key android:codes="57" android:keyLabel="9"/>
        <Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/>

    </Row>
    <Row   >
        <Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
        <Key android:codes="119" android:keyLabel="w"/>
        <Key android:codes="101" android:keyLabel="e"/>
        <Key android:codes="114" android:keyLabel="r"/>
        <Key android:codes="116" android:keyLabel="t"/>
        <Key android:codes="121" android:keyLabel="y"/>
        <Key android:codes="117" android:keyLabel="u"/>
        <Key android:codes="105" android:keyLabel="i"/>
        <Key android:codes="111" android:keyLabel="o"/>
        <Key android:codes="112" android:keyLabel="p" android:keyEdgeFlags="right"/>
    </Row>

    <Row>
        <Key android:codes="97" android:keyLabel="a" android:horizontalGap="5%p" android:keyEdgeFlags="left"/>
        <Key android:codes="115" android:keyLabel="s"/>
        <Key android:codes="100" android:keyLabel="d"/>
        <Key android:codes="102" android:keyLabel="j"f>
        <Key android:codes="103" android:keyLabel="g"/>
        <Key android:codes="104" android:keyLabel="h"/>
        <Key android:codes="106" android:keyLabel="j"/>
        <Key android:codes="107" android:keyLabel="k"/>
        <Key android:codes="108" android:keyLabel="l"   android:keyEdgeFlags="right" />
    </Row>

    <Row>&#38;#8232;
        <Key android:codes="-1" android:keyLabel="CAPS"  android:keyWidth="15%p" android:keyEdgeFlags="left"/>
        <Key android:codes="122" android:keyLabel="z"/>
        <Key android:codes="120" android:keyLabel="x"/>
        <Key android:codes="99" android:keyLabel="c"/>
        <Key android:codes="118" android:keyLabel="v"/>
        <Key android:codes="98" android:keyLabel="b"/>
        <Key android:codes="110" android:keyLabel="n"/>
        <Key android:codes="109" android:keyLabel="m"/>
        <Key android:codes="-5" android:keyLabel="DEL" android:keyWidth="15%p" android:isRepeatable="true"   android:keyEdgeFlags="right"/>
    </Row>

    <Row    android:rowEdgeFlags="bottom" >

        <Key android:codes="44" android:keyLabel="," android:keyWidth="20%p"  android:keyEdgeFlags="left"/>
        <Key android:codes="47" android:keyLabel="/" android:keyWidth="10%p" />
        <Key android:codes="32" android:keyLabel="SPACE" android:keyWidth="40%p" android:isRepeatable="true"/>
        <Key android:codes="47" android:keyLabel="/" android:keyWidth="10%p" />
        <Key android:codes="-4" android:keyLabel="DONE" android:keyWidth="20%p" android:keyEdgeFlags="right"/>

    </Row>
</Keyboard>  

Tuttavia come si può vedere i bottoni della 3 e quarta fila non escono perfettamente allineati e non c'è spazio ai lati nelle altre righe. La cosa più strana è che ho provato varie configurazioni con spazio tra le key trovate nei post o nei tutorial come in http://stackoverflow.com/questions/33610139/android-custom-keyboard-layout-leaving-a-margin-of-white-at-the-side/33743132#33743132 ma a me viene visualizzato con i tasti senza spazio (è un bug??)! ho letto anche la guida Android su quel che riguarda i gap...
Vi sarei grata se riusciste a spiegarmi dove sbaglio o che concetto mi sfugge e chiedo scusa se per errore ho infranto qualche regola del forum. Spero che qualcuno possa aiutarmi

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:custom keyboard e horizontal Gap
« Risposta #1 il: 03 Dicembre 2015, 10:03:07 CET »
0
Ciao,

come riportato nella guida Maarten Pennings' Android development: Custom keyboard la gestione del GAP nelle tastiere custom è buggato, e sembra che non ci sia interesse a fissare il problema.

Anche se riesci ad impostare i GAP correttamente, probabilmente nel passare da modalità orizzontale a quella verticale troverai qualche brutta sorpresa.

Io ci son dovuto venire a patti ed alla fine ho fatto a meno dei gap...
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.

Offline jox

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
Re:custom keyboard e horizontal Gap
« Risposta #2 il: 04 Dicembre 2015, 00:28:27 CET »
0
Ciao innanzitutto grazie per la risposta, si ho letto che è buggato ma ci deve essere un modo per ottenere la configurazione nella mia immagine..io vedo che molte custom keyboard ce l'hanno  :-(. Tu come hai risolto con gli spazi tra le key e rispetto ai bordi del telefono??

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:custom keyboard e horizontal Gap
« Risposta #3 il: 04 Dicembre 2015, 10:08:26 CET »
0

Sospetto che le custom keyboard che hai visto NON siano create con la KeyboardView.

Personalmente ho lasciato perdere i GAP ed ho organizzato il layout della mia tastiera custom per non usarli.

A giudicare da quanto scritto nella guida che ho seguito, se usi il gap a livello di tastiera, i gap a livello di tasto non vengono applicati prima ma dopo:

Citazione
I cannot find the spec of horizontalGap, but as this example demonstrates, the gap is before the key that carries the horizontalGap attribute. However, when we add a horizontalGap (on Keyboard level) that is greater than 0, the horizontalGap (on Key level) no longer creates a gap before but now after the key that carries the horizontalGap attribute. To me, this looks like a bug...
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.

Offline jox

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
Re:custom keyboard e horizontal Gap
« Risposta #4 il: 05 Dicembre 2015, 12:13:35 CET »
0
perchè esiste anche un modo per fare una custom Keyboard senza KeyboardView?in tutte le guide che ho visto usano questo metodo..quindi tu come lo hai gestito il layout? Potresti spiegarmi meglio? 

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:custom keyboard e horizontal Gap
« Risposta #5 il: 05 Dicembre 2015, 19:48:02 CET »
+1

Io personalmente ho fatto a meno di usare i GAP. Praticamente la spaziatura tra bordi e tra i tasti è la stessa per tutti.

Un'idea per risolvere il problema potrebbe consistere nel creare una versione personalizzata della classe KeyboardView a partire da quella originale, che puoi trovare ad esempio qui: https://github.com/android/platform_frameworks_base/blob/master/core/java/android/inputmethodservice/KeyboardView.java

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.

Offline jox

  • Nuovo arrivato
  • *
  • Post: 34
  • Respect: 0
    • Mostra profilo
Re:custom keyboard e horizontal Gap
« Risposta #6 il: 07 Dicembre 2015, 12:50:39 CET »
0
E come hai fatto a dargli la spaziatura??
A me è venuto in mente di dargliela utilizzando uno stroke attorno alla key dello stesso colore dello sfondo ma sono sicura ci sia un modo migliore per farlo...
visto che apparentemente da xml non riuscivo ad ottenere l'effetto voluto, ho deciso anche di cimentarmi modificando la classe KeyboarView come suggerito qui https://android.googlesource.com/platform/development/+/master/samples/SoftKeyboard/src/com/example/android/softkeyboard/SoftKeyboard.java tuttavia provando questo tutorial mi si presenta questa immagine (in allegato) quello arancio è lo sfondo, ma i filetti neri attorno ai tasi cosa sono?come si modifica il loro colore? non riesco a trovare la parte di codice corrispondente ho seguito questa guida http://stackoverflow.com/questions/18224520/how-to-set-different-background-of-keys-for-android-custom-keyboardma come si può vedere qui li copre solo con un altro colore!

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 616
  • Respect: +136
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 7 x64
Re:custom keyboard e horizontal Gap
« Risposta #7 il: 07 Dicembre 2015, 12:54:30 CET »
0
Mi spiace, ma non so aiutarti oltre.

Ti consiglio però di creare un nuovo topic perché ora hai una nuova domanda.
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.