2012-09-10 222 views
0

我有佈局,其中包含兩部分:標題和正文。標題包含TextView和圖像。標題高度可以通過編程方式更改。標題的圖片和文字必須分別縮放。圖像縮放可以,但文本不需要縮放。 Android上有可能以及如何做到這一點?TextView字體大小自動縮放

我的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:tools="http://schemas.android.com/tools" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_gravity="center" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/header" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:ignore="UseCompoundDrawables" > 

     <TextView 
      android:id="@+id/title_text" 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:text="@string/app_name" /> 

     <ImageView 
      android:id="@+id/edit_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:contentDescription="@string/edit" 
      android:src="@drawable/widget_edit" /> 
    </LinearLayout> 

    <TextView 
     android:id="@+id/content_text" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</LinearLayout> 
+0

不,使用xml無法實現。你指的是iPhone的scaleToFit –

+0

試試這個http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds/17782522#17782522 –

回答

1

我不認爲這是可行的使用默認的TextView - 至少在沒有一些黑客。

我想嘗試使用一個自定義View類,並在其畫布上繪製文本。在繪製調用期間,您知道畫布的確切寬度和高度,並使用適當的字體大小繪製文本。

1

如果以編程方式更改高度,則可以定義公式並計算文本的大小。我認爲這是獨特的方式。

您可以實現一個自定義視圖並根據父代的高度定義大小。

存在一種可能是util,sp(Scale-independent Pixels)的單元。但是這與系統中設置的文本大小成比例。

+0

謝謝所有的答案!我會想。 – BArtWell