Autore Topic: testo sbarrato...  (Letto 1631 volte)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
testo sbarrato...
« il: 09 Aprile 2013, 11:54:24 CEST »
0
salve,
ho un testo con questo flag:
layout.nome.getPaint().setStrikeThruText(true);

solo che la linea è molto piccola rispetto al testo...... non c'e' un modo per farla 1 po' + grande ?

Codice (XML): [Seleziona]
            <TextView
               android:id="@+id/nome"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:gravity="center_vertical"
               android:textSize="@dimen/nameText"
               android:textStyle="italic|bold" >


   <dimen name="nameText">26dp</dimen>

avendo messo 26dp sulla grandezza del testo la linea è praticamente invisibile ... non c'e' un modo per farla proporzionata a 26dp?

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #1 il: 09 Aprile 2013, 12:05:58 CEST »
0
E' sufficiente che gli passi un testo racchiuso nel tag html per il testo sbarrato

Codice: [Seleziona]

TextView textview = (TextView) findViewById(R.id.nome);

myTextView.setText(Html.fromHtml("<strike>" + text + "</strike>"));


Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #2 il: 09 Aprile 2013, 12:24:39 CEST »
0
si ma non era questa la domanda :-P
la domanda era come posso modificare la dimensione della linea

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #3 il: 09 Aprile 2013, 12:37:03 CEST »
0
Cambia la Height della View per modificare lo spessore.

Codice (XML): [Seleziona]
<FrameLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      >
       <TextView
              android:id="@+id/nome"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:gravity="center_vertical"
              android:textSize="@dimen/nameText"
              android:textStyle="italic|bold" >

       <View
              android:background="#FF0000"
              android:layout_width="match_parent"
              android:layout_height="4dp"
              android:gravity="center_vertical"
      />
</FrameLayout>

Spero di aver centrato l'argomento stavolta!  O:-)
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #4 il: 09 Aprile 2013, 12:46:29 CEST »
0
credo di no :-P

allora faccio un esempio

test

test

anche qui sul forum la linea che barra il testo è sempre di spessore 1 pixel...
quello che vorrei far è aumentare lo spessore di quella linea per far si che si veda di + su un testo + grande...
se ho un testo con grandezza 36 e una linea di un pixel la linea si nota molto difficilmente...

Codice (XML): [Seleziona]
    <dimen name="landText">22dp</dimen>
    <dimen name="infoText">18dp</dimen>
    <dimen name="nameText">26dp</dimen>
    <dimen name="historyText">26dp</dimen>

il problema è che uso tutti caratteri grandi dato che l'app è pensata per esser usata su un tablet e a distanza non ravvicinata da permettersi caratteri piccoli :-P

quindi a quel punto la riga si vede con difficoltà... (soprattutto se chi la usa, mio padre, non ha gli occhiali)

Offline NanoAndroide

  • Utente junior
  • **
  • Post: 63
  • Respect: +3
    • Google+
    • Mostra profilo
    • MeToo
  • Dispositivo Android:
    GT-S5570
  • Play Store ID:
    MeToo
  • Sistema operativo:
    Windows 7
Re:testo sbarrato...
« Risposta #5 il: 09 Aprile 2013, 13:01:32 CEST »
0
Non so se esiste modo di modificare la linea di default, ma qui suggeriscono come usare una 9-patch per definirne una 'personalizzata':

can I define middle-lined text in an Android layout xml file - Stack Overflow

In questo caso, basta aumentare lo spessore della linea nel drawable per ottenere il risultato voluto...  :D

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #6 il: 09 Aprile 2013, 13:03:55 CEST »
0
credo di no :-P

allora faccio un esempio

test

test

anche qui sul forum la linea che barra il testo è sempre di spessore 1 pixel...
quello che vorrei far è aumentare lo spessore di quella linea per far si che si veda di + su un testo + grande...
se ho un testo con grandezza 36 e una linea di un pixel la linea si nota molto difficilmente...

Codice (XML): [Seleziona]
    <dimen name="landText">22dp</dimen>
    <dimen name="infoText">18dp</dimen>
    <dimen name="nameText">26dp</dimen>
    <dimen name="historyText">26dp</dimen>

il problema è che uso tutti caratteri grandi dato che l'app è pensata per esser usata su un tablet e a distanza non ravvicinata da permettersi caratteri piccoli :-P

quindi a quel punto la riga si vede con difficoltà... (soprattutto se chi la usa, mio padre, non ha gli occhiali)

Va bene, però hai provato quella soluzione?

Utilizzando quel layout, avrai una Textview, con sopra una View, che fungerà da riga. Essa potrai personalizzarla sia come altezza, sia in largezza che nel colore.

Ora, se il problema è che vuoi che questa linea sia creata in modo dinamico, o vuoi che sia proporzionale alla dimensione del font nella TextView, è tutt'altro discorso.

Nel frattempo dimmi cosa manca nella soluzione che ti ho proposto :-)
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #7 il: 09 Aprile 2013, 13:18:01 CEST »
0
Va bene, però hai provato quella soluzione?

Utilizzando quel layout, avrai una Textview, con sopra una View, che fungerà da riga. Essa potrai personalizzarla sia come altezza, sia in largezza che nel colore.

Ora, se il problema è che vuoi che questa linea sia creata in modo dinamico, o vuoi che sia proporzionale alla dimensione del font nella TextView, è tutt'altro discorso.

Nel frattempo dimmi cosa manca nella soluzione che ti ho proposto :-)


si ho capito come funziona.. ma andrei a barrare tutta la linea...

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #8 il: 09 Aprile 2013, 13:24:00 CEST »
0
Barrare tutta la linea? In che senso? Vuoi barrare solo una parte della TextView? Oppure dici che la View è più larga della TextView?
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #9 il: 09 Aprile 2013, 14:54:52 CEST »
0
si la view è + grande della textview... perchè la textview occupa tutto lo spazio disponibile... (ho un'altra view che va a % della textview per farmi lo sfondo ...)

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #10 il: 09 Aprile 2013, 15:40:40 CEST »
0
Allora, se setti wrap_content alla width del FrameLayout e della TextView.

La textview occuperà lo spazio necessario, il framelayout sarà grande quanto la textview, e di conseguenza la View, che ha width match parent, sarà larga quanto la TextView.

Se non ti torna qualcosa oppure non esce correttamente, posta il tuo layout  :-)
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #11 il: 09 Aprile 2013, 15:48:08 CEST »
0
guarda sto a casa e ho eclipse e tutto il resto al lavoro sul portatile.. prendo la roba da dropbox xo' non posso provarla :-P


Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/rigaordine"
   android:layout_width="fill_parent"
   android:layout_height="match_parent"
   android:gravity="bottom"
   android:orientation="horizontal"
   android:longClickable="true">

    <LinearLayout
       android:id="@+id/linearLayout1"
       android:layout_width="0dp"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:orientation="vertical" >

        <LinearLayout
           android:id="@+id/linearLayout2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:gravity="left"
           android:orientation="horizontal" >

            <TextView
               android:id="@+id/infotxt"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:background="@drawable/gray"
               android:gravity="center_vertical"
               android:textSize="@dimen/infoText" >
            </TextView>

            <TextView
               android:id="@+id/infotxt2"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="3"
               android:background="@drawable/green"
               android:textSize="@dimen/infoText" >
            </TextView>
        </LinearLayout>

        <RelativeLayout
           android:id="@+id/relativeLayout1"
           android:layout_width="wrap_content"
           android:layout_height="match_parent" >

            <LinearLayout
               android:id="@+id/historymarker"
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_alignParentLeft="true"
               android:layout_centerVertical="true"
               android:background="#68ff00" >
            </LinearLayout>

            <TextView
               android:id="@+id/nome"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:gravity="center_vertical"
               android:textSize="@dimen/nameText"
               android:textStyle="italic|bold" >
            </TextView>
        </RelativeLayout>
    </LinearLayout>

    <TextView
       android:id="@+id/history"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:bufferType="spannable"
       android:gravity="center_vertical"
       android:textSize="@dimen/historyText"
       android:textStyle="bold" />

    <Button
       android:id="@+id/sottrai"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="-"
       android:textSize="30dp" />

    <TextView
       android:id="@+id/quantita"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:background="#990000"
       android:gravity="center"
       android:textColor="#FFFFFF"
       android:textSize="50dp"
       android:textStyle="bold" />

    <Button
       android:id="@+id/aggiungi"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="+"
       android:textSize="30dp" >
    </Button>
    <!--
   <ImageView
       android:id="@+id/info"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:src="@drawable/infobutton" >
   </ImageView>
   -->

</LinearLayout>

historymarker è la view che mi fa lo sfondo in % in base al codice...

Offline s1m0

  • Utente junior
  • **
  • Post: 122
  • Respect: +14
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S
  • Sistema operativo:
    Android 4.1.2
Re:testo sbarrato...
« Risposta #12 il: 09 Aprile 2013, 16:33:36 CEST »
0
Prova a mettere il FrameLayout e il relativo contenuto che ti ho postato dentro al LinearLayout historymarker e dimmi se esce come desideri, magari correlato da uno screenshoot in caso negativo :-)
Un click sul pulsante "Thanks" è sempre gradito :-)

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #13 il: 10 Aprile 2013, 17:25:06 CEST »
0
allora
la mia view è attualmente questa:
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/rigaordine"
   android:layout_width="fill_parent"
   android:layout_height="match_parent"
   android:gravity="bottom"
   android:longClickable="true"
   android:orientation="horizontal" >

    <LinearLayout
       android:id="@+id/linearLayout1"
       android:layout_width="0dp"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:orientation="vertical" >

        <LinearLayout
           android:id="@+id/linearLayout2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:gravity="left"
           android:orientation="horizontal" >

            <TextView
               android:id="@+id/infotxt"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:background="@drawable/gray"
               android:gravity="center_vertical"
               android:textSize="@dimen/infoText" >
            </TextView>

            <TextView
               android:id="@+id/infotxt2"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="3"
               android:background="@drawable/green"
               android:textSize="@dimen/infoText" >
            </TextView>
        </LinearLayout>

        <RelativeLayout
           android:id="@+id/relativeLayout1"
           android:layout_width="wrap_content"
           android:layout_height="match_parent" >

            <LinearLayout
               android:id="@+id/historymarker"
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_alignParentLeft="true"
               android:layout_centerVertical="true"
               android:background="#68ff00" >
            </LinearLayout>
<!--
           <FrameLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content" >

               <TextView
                   android:id="@+id/nome"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:gravity="center_vertical"
                   android:textSize="@dimen/nameText"
                   android:textStyle="italic|bold" >
               </TextView>

               <View
                   android:layout_width="match_parent"
                   android:layout_height="4dp"
                   android:background="#FF0000"
                   android:gravity="center_vertical" />
           </FrameLayout>
-->
     
                 <TextView
               android:id="@+id/nome"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:gravity="center_vertical"
               android:textSize="@dimen/nameText"
               android:textStyle="italic|bold" >
            </TextView>
 
        </RelativeLayout>
    </LinearLayout>

    <TextView
       android:id="@+id/history"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:bufferType="spannable"
       android:gravity="center_vertical"
       android:textSize="@dimen/historyText"
       android:textStyle="bold" />

    <Button
       android:id="@+id/sottrai"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="-"
       android:textSize="30dp" />

    <TextView
       android:id="@+id/quantita"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:background="#990000"
       android:gravity="center"
       android:textColor="#FFFFFF"
       android:textSize="50dp"
       android:textStyle="bold" />

    <Button
       android:id="@+id/aggiungi"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="+"
       android:textSize="30dp" >
    </Button>
    <!--
   <ImageView
       android:id="@+id/info"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:src="@drawable/infobutton" >
   </ImageView>
   -->

</LinearLayout>


mentre utilizzando questo xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/rigaordine"
   android:layout_width="fill_parent"
   android:layout_height="match_parent"
   android:gravity="bottom"
   android:longClickable="true"
   android:orientation="horizontal" >

    <LinearLayout
       android:id="@+id/linearLayout1"
       android:layout_width="0dp"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:orientation="vertical" >

        <LinearLayout
           android:id="@+id/linearLayout2"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:gravity="left"
           android:orientation="horizontal" >

            <TextView
               android:id="@+id/infotxt"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="1"
               android:background="@drawable/gray"
               android:gravity="center_vertical"
               android:textSize="@dimen/infoText" >
            </TextView>

            <TextView
               android:id="@+id/infotxt2"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content"
               android:layout_weight="3"
               android:background="@drawable/green"
               android:textSize="@dimen/infoText" >
            </TextView>
        </LinearLayout>

        <RelativeLayout
           android:id="@+id/relativeLayout1"
           android:layout_width="wrap_content"
           android:layout_height="match_parent" >

            <LinearLayout
               android:id="@+id/historymarker"
               android:layout_width="0dp"
               android:layout_height="match_parent"
               android:layout_alignParentLeft="true"
               android:layout_centerVertical="true"
               android:background="#68ff00" >
            </LinearLayout>

            <FrameLayout
               android:layout_width="match_parent"
               android:layout_height="wrap_content" >

                <TextView
                   android:id="@+id/nome"
                   android:layout_width="match_parent"
                   android:layout_height="match_parent"
                   android:gravity="center_vertical"
                   android:textSize="@dimen/nameText"
                   android:textStyle="italic|bold" >
                </TextView>

                <View
                   android:layout_width="match_parent"
                   android:layout_height="4dp"
                   android:background="#FF0000"
                   android:gravity="center_vertical" />
            </FrameLayout>

        </RelativeLayout>
    </LinearLayout>

    <TextView
       android:id="@+id/history"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:bufferType="spannable"
       android:gravity="center_vertical"
       android:textSize="@dimen/historyText"
       android:textStyle="bold" />

    <Button
       android:id="@+id/sottrai"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="-"
       android:textSize="30dp" />

    <TextView
       android:id="@+id/quantita"
       android:layout_width="wrap_content"
       android:layout_height="match_parent"
       android:background="#990000"
       android:gravity="center"
       android:textColor="#FFFFFF"
       android:textSize="50dp"
       android:textStyle="bold" />

    <Button
       android:id="@+id/aggiungi"
       android:layout_width="60dp"
       android:layout_height="fill_parent"
       android:text="+"
       android:textSize="30dp" >
    </Button>
    <!--
   <ImageView
       android:id="@+id/info"
       android:layout_width="wrap_content"
       android:layout_height="fill_parent"
       android:src="@drawable/infobutton" >
   </ImageView>
   -->

</LinearLayout>

diventa così


(vabbè c'e' la riga in ogni riga xkè non l'ho gestita via codice)

Post unito: 10 Aprile 2013, 17:27:30 CEST
se metto la view all'interno della textview mi crasha quando vado ad usare inflate
« Ultima modifica: 10 Aprile 2013, 17:27:30 CEST da Trigun, Reason: Merged DoublePost »

Offline Trigun

  • Utente normale
  • ***
  • Post: 183
  • Respect: +4
    • Mostra profilo
Re:testo sbarrato...
« Risposta #14 il: 15 Aprile 2013, 17:59:16 CEST »
0
finalmente ci son riuscito...
ed è stato anche + facile di quanto mi aspettassi....
ho semplicemente messo un background con un drawable che ho "creato" (copiato e modificato :-P )
e ho aggiunto altri layer per mantenere i vecchi effetti :-P
ora praticamente ci son 3 oggetti sovrapposti
2 a dimensione variabile e 1 a dimensione fissa... prima era 1 fisso e 1 variabile...

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" >
   <solid android:color="#ffffff" />
   <stroke android:width="3dip" android:color="#000000"/>
</shape>