2012-08-13 66 views
0

我有一個自定義對話框,其中顯示了一些結果。結果文本可以具有不同的大小,並且在對話框中有很多可用空間時。我如何做autoresize textView的結果和autoresize佈局?自動調整文本視圖和佈局

<LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="300dp" 
     android:background="@drawable/dialog_bg" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.01" 
      android:gravity="center" 
      android:text="Scores" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textSize="18sp" 
      android:textStyle="italic" 
      android:typeface="serif" /> 

     <EditText 
      android:id="@+id/editText1" 
      android:layout_width="fill_parent" 
      android:layout_height="80dp" 
      android:layout_marginBottom="20dp" 
      android:layout_marginLeft="15dp" 
      android:layout_marginRight="15dp" 
      android:layout_marginTop="10dp" 
      android:layout_weight="0.04" 
      android:background="@null" 
      android:cursorVisible="false" 
      android:editable="false" 
      android:ems="10" 
      android:focusable="false" 
      android:focusableInTouchMode="false" 
      android:gravity="top|left" 
      android:inputType="textMultiLine|textNoSuggestions|textFilter" 
      android:textColor="@android:color/white" 
      android:textSize="16sp" 
      android:textStyle="italic" 
      android:typeface="serif" > 

      <requestFocus /> 
     </EditText> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="42dp" 
      android:layout_margin="10dp" > 

      <Button 
       android:id="@+id/ok" 
       android:layout_width="70dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/ok" 
       android:onClick="okAction" /> 

      <LinearLayout 
       android:layout_width="wrap_content" 
       android:layout_height="match_parent" 
       android:layout_weight="0.99" > 
      </LinearLayout> 

      <Button 
       android:id="@+id/share" 
       android:layout_width="91dp" 
       android:layout_height="wrap_content" 
       android:background="@drawable/share" 
       android:onClick="shareAction" /> 
     </LinearLayout> 
    </LinearLayout> 

回答

0

變化高度&寬度線性佈局wrap_content的,也可以使用填充或餘量,在文本視圖使用wrap_content
不要硬編碼任何值

1

只是下面的自定義類替換任何的TextView:

public class Text extends TextView { 
    public Text(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     float textSize=this.getTextSize(); 
     WindowManager wm=(WindowManager)(context.getSystemService(Context.WINDOW_SERVICE)); 
     Display display=wm.getDefaultDisplay(); 
     int width=display.getWidth(); 
     int height=display.getHeight(); 
     double diagonal=Math.sqrt(Math.pow(height,2)+Math.pow(width,2)); 
     double ratio=diagonal/1500.0; 
     this.setTextSize((float)(ratio*textSize)); 
    } 

} 

替換1500.0與正在測試的設備的像素的屏幕對角線尺寸/建築應用上(它必須採用雙格式,這意味着您應該添加.0結尾)。

相關問題