如何在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文件中这是文档,抱歉。我很担心。谢谢你的想法