如何在android中使TextView自动调整大小?
我想实现自动调整文本大小的方法,以获得更好的兼容性 我跟随这篇文章: 我写了这段代码:如何在android中使TextView自动调整大小?,android,android-studio,autoresize,Android,Android Studio,Autoresize,我想实现自动调整文本大小的方法,以获得更好的兼容性 我跟随这篇文章: 我写了这段代码: <TextView android:id="@+id/textView5" android:layout_width="match_parent" android:layout_height="wrap_content" android:autoSizeMaxTextSize=&
<TextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:autoSizeMaxTextSize="100sp"
android:autoSizeMinTextSize="12sp"
android:autoSizeStepGranularity="2sp"
android:autoSizeTextType="none"
android:fontFamily="@font/arimo"
android:text="Ti piace Youtube?"
android:textAlignment="viewStart"
android:textAllCaps="false"
android:textColor="#F8F3F3"
android:textSize="20sp"
android:textStyle="bold"
app:autoSizePresetSizes="@array/autosize_text_sizes" />
我怎么了?文本不会自动调整大小,例如,在Nexus S Emulator中,我看不到完整的文本,但它是剪切的
谢谢
Elvis我使用ssp和sdp。ssp是文本的可伸缩大小单位,它是android SDK,提供了一个新的大小单位——ssp(可伸缩sp)。此大小单位根据sp大小单位(用于文本)随屏幕大小进行缩放。它可以帮助Android开发者支持多个屏幕。而sdp这是sdp大小单位的兄弟,应该用于非文本视图。使用gradle并编译如下库
implementation 'com.intuit.sdp:sdp-android:1.0.4'
implementation 'com.intuit.ssp:ssp-android:1.0.4'
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Intuit"
android:textColor="@android:color/black"
android:textSize="@dimen/_40ssp"/>
在您的布局活动中,例如,您可以提供如下文本的xml
android:textSize=“@dimen/_16ssp”
用于布局
android:layout_height=“@dimen/_16sdp”
这将照顾到任何屏幕享受
对于纯文本,请在gradle文件中添加实现'com.intuit.ssp:ssp android:1.0.4'
下面是TextView中xml文件的示例,如下图所示实现它
implementation 'com.intuit.sdp:sdp-android:1.0.4'
implementation 'com.intuit.ssp:ssp-android:1.0.4'
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Intuit"
android:textColor="@android:color/black"
android:textSize="@dimen/_40ssp"/>
你可以使用这个:
android:autosizemaxtsize=“
但是这需要api 26,如果不是这样,你可以用应用程序替换android
在API 26以下的情况下,您可以使用以下适用于我的方法:
app:autoSizeMaxTextSize="100sp"
app:autoSizeMinTextSize="2sp"
app:autoSizeStepGranularity="2sp"
app:autoSizeTextType="uniform"
用您想要的值替换这些值。最好使用androidx.appcompat.widget.AppCompatTextView
而不是TextView
在旧设备上具有兼容性
我想问题出在android:autoSizeTextType=“none”
,它不应该是none
。另外,用一种简单的方法,不需要定义app:autoSizePresetSizes
,让文本视图自己计算合适的大小
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/textView5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/arimo"
android:text="Ti piace Youtube?"
android:textAlignment="viewStart"
android:textAllCaps="false"
android:textColor="#F8F3F3"
android:textSize="20sp"
android:textStyle="bold"
app:autoSizeTextType="uniform"
app:autoSizeMinTextSize="12sp"
app:autoSizeMaxTextSize="100sp"
app:autoSizeStepGranularity="1sp" />
我尝试了这一点,但仍然看到文本被剪切。我想补充一点,textview位于radiogroup中。是否可以共享屏幕截图?你想文本是一行吗?是的,我有一个很长的文本:6个单词,不是我报告的句子。你想要什么截图?此处的无线电组:将android:lines=“1”
添加到TextView属性。我想看看剪切文本。好的,这里好的,你能给我解释一下如何在android studio中使用SSP吗?抱歉,我是android studiook的新手,实现'com.intuit.sdp:sdp android:1.0.4'实现'com.intuit.ssp:ssp android:1.0.4',应该在哪里插入它们?Elvis在你的buil.gradel文件中这是文档,抱歉。我很担心。谢谢你的想法