Android:自动调整圈内文字大小

时间:2017-06-09 21:26:38

标签: android

我有一个TextView,它有一个圆圈作为背景。我想在其中自动调整大小数字,以便它不会超出圆圈: 以下是我的TextView:

        <TextView
            android:id="@+id/rank"
            android:layout_width="35dip"
            android:layout_height="35dip"
            android:layout_marginLeft="30dip"
            android:layout_marginBottom="10dip"
            android:layout_marginTop="10dip"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:background="@drawable/circle_background"
            android:gravity="center"
            android:text="12345"
            android:maxLines="1"
            android:textColor="@color/white"
            android:textSize="15sp" />

以下是我的circle_background.xml:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
    <corners android:radius="10dip"/>
    <stroke android:color="#F5F5F5" android:width="5dip"/>
    <solid android:color="#F5F5F5"/>
</shape>

我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:0)

在 Android 8.0(API 级别 26)及更高版本中,您可以指示 TextView 让文本大小自动扩展或收缩以根据 TextView 的特征和边界填充其布局。此设置可让您更轻松地在不同屏幕上优化具有动态内容的文本大小。

https://developer.android.com/guide/topics/ui/look-and-feel/autosizing-textview

示例:

将以下属性添加到您的 textView 以在运行时更改 textSize。

 C:/Users/DELL/AppData/Local/Android/Sdk/ndk/21.1.6352462/toolchains/llvm/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin\ld: error: cannot find -l../../src/libzt.lib

enter image description here

答案 1 :(得分:-1)

您可以使用新的appcompat功能。但它是预览功能,您需要升级依赖项。

https://developer.android.com/preview/features/autosizing-textview.html

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />

重要的是:

android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp"

有完整的迁移指南可以随时转移到新的Andorid Studio:https://developer.android.com/studio/preview/features/new-android-plugin-migration.html

如果您不想要,只需添加到顶级build.gradle

maven { url 'https://maven.google.com' } 然后在app-compat中将build.gradle中的依赖项从25.4.0替换为26.0.0-beta2

还有另一个指南如何使用支持库:https://developer.android.com/topic/libraries/support-library/setup.html

您仍将使用您的部分: android:background="@drawable/circle_background" android:gravity="center" 也许你需要为TextView

设置一点填充