在下面这个代码来自android studio上的android应用程序,我有一个LinearLayout,其中包含一个TextView,其大小我要更改,例如说从100到20.但事情是,每当我更改 android :textSize =" 100.0dip" 到任何其他号码,在我的手机上运行时,应用程序的大小仍保持不变。
代码:
<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 :(得分:0)
您正在应用样式设置textview size 2次,为textview应用textsize设置另一个。使用任何一个。对于文本,使用sp而不是dp来尊重用户首选项。
答案 1 :(得分:0)
文字大小以sp
- 与比例无关的像素来衡量。
所以,在你的情况下你应该使用
<item name="android:textSize">100sp</item>
而不是
<item name="android:textSize">100.0dip</item>
另外,请不要忘记您的布局中的属性会覆盖该样式,在这种情况下,您应该从android:textSize
中删除TextView
并将其保留为样式。此外,您应该从10的文本大小开始,100是大到未使用。
答案 2 :(得分:0)
您正在使用 dip ,而 textSize 应 sp 。
您可以使用以下文件更新您的代码文件,它将解决您的问题
<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>
答案 3 :(得分:0)
提示:使用dimens.xml
存储您的具体值,以便更轻松,更清晰地进行代码管理。
除了从dip
更改为sp
以及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));
答案 4 :(得分:0)
你在textize中使用 dip ,而不只是使用 dp 或 sp .dp和sp两者都可以正常工作,但通常在textview中,我们使用 sp 。