当文本太长时,如何减小textview的大小?

时间:2014-05-08 17:06:20

标签: android xml android-layout textview

我有以下情况

enter image description here

和这个

enter image description here

我的代码:

<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>

enter image description here

如果文字包含超过15个字符,我怎么能将textview的大小缩小到X dp

3 个答案:

答案 0 :(得分:1)

您可以使用TextView方法在运行时设置文本大小:

setTextSize (float size) 

一种非常简单的方法是使用Paint对象。您可以创建一个,添加一组文本大小,并使用它的方法measureText(&#34;一些文本&#34;),您将能够知道文本的宽度。有了这个,您可以决定将其拆分为多行,或者通过缩小文本大小并再次检查,直到您的大小适合您的屏幕大小。

答案 1 :(得分:1)

它是逻辑部分,如果字符串的大小数量更多,则给出条件,你减小尺寸。

答案 2 :(得分:0)

这两个问题为您的案例提供了非常有用的解决方案。

  1. Auto-fit TextView for Android
  2. Auto Scale TextView Text to Fit within Bounds
  3. 希望这会对你有所帮助。