it is the logically part , give the condition if the number of size of string more then , the you reduce the size .
How I can reduce the size of a textview when the text is too long?
-
18-07-2023 - |
Question
I have the following situation
and this
my code:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true" >
<RelativeLayout
android:id="@+id/container_description"
android:layout_width="match_parent"
android:layout_height="382dp"
android:paddingBottom="15dp" >
<RelativeLayout
android:id="@+id/header_description"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_alignParentTop="true"
android:paddingLeft="5dip"
android:paddingRight="5dip" >
<LinearLayout
android:id="@+id/llamar_description"
android:layout_width="300dip"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
android:gravity="center_vertical|left"
android:layout_marginTop="5dp"
>
<ImageButton
android:id="@+id/carta"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/platos"
android:scaleType="centerInside"
android:onClick="onClick"
android:clickable="true"
android:background="@null"
android:layout_marginRight="6dp"
android:layout_marginLeft="25dp"
/>
<ImageButton
android:id="@+id/tragos"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/tragos"
android:scaleType="centerInside"
android:onClick="onClick"
android:clickable="true"
android:background="@null"
android:layout_marginRight="6dp"
android:layout_marginLeft="0dp"
/>
<ImageButton
android:id="@+id/happy"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/happy"
android:scaleType="centerInside"
android:onClick="onClick"
android:clickable="true"
android:background="@null"
android:layout_marginRight="6dp"
android:layout_marginLeft="0dp"
/>
<!--<ImageButton
android:id="@+id/promo"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/promocion2"
android:scaleType="centerInside"
android:onClick="onClick"
android:clickable="true"
android:background="@null"
android:layout_marginRight="6dp"
/>-->
<ImageButton
android:id="@+id/karaoke"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/karaoke"
android:scaleType="centerInside"
android:onClick="onClick"
android:clickable="true"
android:background="@null"
android:layout_marginRight="6dp"
android:layout_marginLeft="0dp"
/>
</LinearLayout>
<TextView
android:id="@+id/texto_usted_esta_en"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:ellipsize="end"
android:paddingTop="20dip"
android:singleLine="true"
android:text="@+string/usted_esta_en"
android:textColor="@android:color/white"
android:textSize="15sp" />
<TextView
android:id="@+id/address_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/llamar_description"
android:layout_centerHorizontal="true"
android:ellipsize="end"
android:gravity="center"
android:maxLines="2"
android:paddingLeft="10dip"
android:paddingRight="10dip"
android:paddingTop="10dp"
android:textColor="@android:color/white"
android:textSize="18sp"
/>
<TextView
android:id="@+id/name_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/address_description"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:paddingTop="25dp"
android:gravity="center"
android:lineSpacingExtra="-20dp"
android:tag="bold"
android:textColor="@android:color/white"
android:textSize="60dp" />
</RelativeLayout>
<LinearLayout
android:id="@+id/tragos_description"
android:layout_width="300dip"
android:layout_height="wrap_content"
android:layout_below="@+id/header_description"
android:layout_centerHorizontal="true"
android:paddingLeft="25sp" >
<TextView
android:id="@+id/texto_carta"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Platos"
android:textColor="@android:color/white"
android:textSize="10sp"
android:layout_marginLeft="15dp"
/>
<TextView
android:id="@+id/texto_tragos"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Tragos"
android:textColor="@android:color/white"
android:textSize="10sp"
android:layout_marginLeft="33dp"/>
<TextView
android:id="@+id/texto_happy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Happy Hours"
android:textColor="@android:color/white"
android:textSize="10sp"
android:layout_marginLeft="22dp"/>
<!--<TextView
android:id="@+id/texto_promo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Promos"
android:textColor="@android:color/white"
android:textSize="10sp"
android:layout_marginLeft="10dp" />-->
<TextView
android:id="@+id/texto_karaoke"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="Karaoke"
android:textColor="@android:color/white"
android:textSize="10sp"
android:layout_marginLeft="19dp" />
</LinearLayout>
<TextView
android:id="@+id/sobre_happy_hour"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/tragos_description"
android:layout_centerHorizontal="true"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="Tutorial"
android:textColor="@android:color/white"
android:textSize="16sp"
android:onClick="onClick"
android:clickable="true"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="5dp"
android:paddingBottom="5dp"
android:background="#fe005a"
/>
<TextView
android:id="@+id/horario_happy_hours"
android:layout_width="250dip"
android:layout_height="wrap_content"
android:layout_below="@+id/sobre_happy_hour"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dip"
android:gravity="left"
android:textColor="@android:color/white"
android:textSize="12sp"
android:paddingLeft="5sp"/>
</RelativeLayout>
</ScrollView>
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dip"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffffff"
android:choiceMode="singleChoice"
android:headerDividersEnabled="false" />
</android.support.v4.widget.DrawerLayout>
How could I do to shrink the size of textview to Xdp
if the text contains more than 15 characters?
Solution
OTHER TIPS
You can set the text size at runtime using the TextView method:
setTextSize (float size)
A very easy way will be using a Paint object. You can create one, add a set a text size, and using it's method measureText("some text") you will be able to know width of the text. Having that, you can decide either to split it on multiple lines, or by reducing the text size and checking again until you have a size that fits your screen size.
These two questions provides a very useful solution for your case.
Hope this helps you.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow