2017-12-27 188 views
0

在下面的代碼中,從android studio的android應用程序中,我有一個LinearLayout,它包含一個TextView,其大小我想要改變,例如從100改變爲20.但是,事情是,每當我改變android:textSize =「100.0dip」到任何其他數字,在我的手機上運行時,大小在應用程序中仍然保持不變。在TextView中更改textSize

代碼:

<ScrollView 
    android:id="@id/qp_body_wrapper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@id/widget34" 
    android:layout_below="@id/widget99" 
    android:layout_marginBottom="5.0dip" 
    android:layout_marginTop="10.0dip" 
    android:clickable="true" 
    android:focusable="true" 
    android:foregroundGravity="right"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@id/qp_body_wrapper_container" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:focusable="true" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@id/qp_body" 
      style="@style/QuoteViewText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/dashboard_qod_bg" 
      android:clickable="true" 
      android:focusable="true" 
      android:gravity="right" 
      android:padding="10.0dip" 
      android:textAlignment="viewEnd" 
      android:textColor="#FFFFFF" 
      android:textSize="100.0dip" 
      tools:ignore="RtlCompat,RtlHardcoded" /> 
    </LinearLayout> 
</ScrollView> 

這裏是QuoteViewText風格:

<style name="QuoteViewText"> 
     <item name="android:textSize">100.0dip</item> 
     <item name="android:typeface">serif</item> 
     <item name="android:textStyle">bold</item> 
     <item name="android:textColor">#fffcfcfc</item> 
     <item name="android:shadowColor">#ff102e46</item> 
     <item name="android:shadowDx">0.0</item> 
     <item name="android:shadowDy">1.0</item> 
     <item name="android:shadowRadius">2.0</item> 
    </style> 
+0

與文本的容器大小相同嗎? – appersiano

+0

我是新來的android和java,但我編輯了這裏的代碼,我複製了整個scrollView,這回答你的問題? – eliadesign

+0

嘗試使用sp或僅使用dp代替 – jhonatan2760

回答

0

要設置TextView的大小2從應用TEXTSIZE爲TextView的應用樣式和另一個時代之一。使用任何一個。對於文本,使用sp而不是dp來表示用戶偏好。

+0

我做到了,但沒有任何改變:(謝謝 – eliadesign

0

文字大小是在sp - 與比例無關的像素中測得的。

所以,你的情況,你應該使用

<item name="android:textSize">100sp</item> 

代替

<item name="android:textSize">100.0dip</item> 

而且,不要忘記,風格是從屬性的佈局overrided,在這種情況下,你應該刪除android:textSize從你的TextView,只留下樣式。你也應該從10的文字大小開始,100是大而不用的。

+0

我做了你在這裏說的一切,但沒有任何改變! – eliadesign

0

您正在使用,而應該SPTEXTSIZE

你可以用這些下面的文件更新您的代碼文件,它會解決你的問題

<ScrollView 
    android:id="@id/qp_body_wrapper" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_above="@id/widget34" 
    android:layout_below="@id/widget99" 
    android:layout_marginBottom="5.0dip" 
    android:layout_marginTop="10dp" 
    android:clickable="true" 
    android:focusable="true" 
    android:foregroundGravity="right"> 

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@id/qp_body_wrapper_container" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:focusable="true" 
     android:orientation="vertical"> 

     <TextView 
      android:id="@id/qp_body" 
      style="@style/QuoteViewText" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:background="@drawable/dashboard_qod_bg" 
      android:clickable="true" 
      android:focusable="true" 
      android:gravity="right" 
      android:padding="10dpp" 
      android:textAlignment="viewEnd" 
      android:textColor="#FFFFFF" 
      tools:ignore="RtlCompat,RtlHardcoded" /> 
    </LinearLayout> 
</ScrollView> 

這裏是QuoteViewText風格:

<style name="QuoteViewText"> 
      <item name="android:textSize">100sp</item> 
      <item name="android:typeface">serif</item> 
      <item name="android:textStyle">bold</item> 
      <item name="android:textColor">#fffcfcfc</item> 
      <item name="android:shadowColor">#ff102e46</item> 
      <item name="android:shadowDx">0.0</item> 
      <item name="android:shadowDy">1.0</item> 
      <item name="android:shadowRadius">2.0</item> 
     </style> 
0

提示:使用dimens.xml來存儲您的使代碼管理更簡單,更簡潔的具體值。

除了從dipsp的變化和textSize多餘的雙重設置,則您的TextView代碼沒有問題,它應該工作的罰款。有一些其他小問題,可能使用@+id/qp_body而不是match_parent而不是已棄用的fill_parent,但它仍然應該工作。

這是在黑暗中拍攝,但請檢查,如果您不是以某種方式在代碼中以編程方式覆蓋值。如果沒有,你總是可以嘗試,看看會發生什麼:

TextView mTextView = (TextView) findViewById(R.id.qp_body); 
mTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20f); 

或使用維資源:

TextView mTextView = (TextView) findViewById(R.id.qp_body); 
mTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.my_text_size)); 
0

您正在使用在TEXTSIZE,而不只是使用DPsp .dp和sp都將工作,但通常在textview中,我們使用sp