2017-12-27 223 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