如何在android中缩放TextView并将其保持在中心位置

如何在android中缩放TextView并将其保持在中心位置,android,android-layout,Android,Android Layout,我正在尝试使用测试视图的动态缩放来进行布局。布局看起来像-请参见左下角 现在,该部分是一个复合控件。圆圈的大小恰到好处,但我不知道如何使文本在中间适当地定位,同时适当缩放。我希望文本的大小为容器大小的50%,并且完全位于中心。RelativeLayout只允许绝对值,而我似乎无法在文本视图中获得使用文本视图的线性布局的权重 复合控制: <RelativeLayout android:layout_width="match_parent" android:layout_hei

我正在尝试使用测试视图的动态缩放来进行布局。布局看起来像-请参见左下角

现在,该部分是一个复合控件。圆圈的大小恰到好处,但我不知道如何使文本在中间适当地定位,同时适当缩放。我希望文本的大小为容器大小的50%,并且完全位于中心。RelativeLayout只允许绝对值,而我似乎无法在文本视图中获得使用文本视图的线性布局的权重

复合控制:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/VarioCircle"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:contentDescription="Vario Circle"

        android:scaleType="fitCenter"
        android:src="@drawable/circle" />

    <LinearLayout
        android:gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:weightSum="1.0"
        android:orientation="vertical"
                        android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"

        >

        <TextView
            android:id="@+id/VarioText"
            android:layout_width="wrap_content"
            android:layout_height="0dp"

            android:text="200"
            android:textColor="#FF0000"
            android:textSize="60dp"
            android:layout_weight="0.7"
            android:textStyle="bold"
            android:typeface="monospace" />

    </LinearLayout>
</RelativeLayout>

总体布局:

 <com.proflite.VarioView
     android:id="@+id/Vario"
         android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_alignParentBottom="true"
 />

将文本视图放在容器内。并将“重力”(视图属性)设置为“中心”。 设置文本视图宽度和高度以包装内容。 这将使TextView在其容器中居中

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="200dp"
    android:layout_height="200dp" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Medium Text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textSize="20sp" />
</FrameLayout>

这将使文本视图在FrameLayout内部居中

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >

<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/VarioCircle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:contentDescription="Vario Circle"
    android:scaleType="fitCenter"
    android:src="@drawable/circle" />

    <TextView
        android:id="@+id/VarioText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="200"
        android:textColor="#FF0000"
        android:textSize="60dp"
        android:layout_weight="0.7"
        android:textStyle="bold"
        android:typeface="monospace" />
    </RelativeLayout>

    </RelativeLayout>

我建议您制作一个按钮小部件,并将图像设置为背景,背景为.png格式,背景为透明背景

像这样:

之后,请确保将其另存为.png

1) 然后转到xml布局创建按钮或ImageButton小部件。
2) 将此图片另存为背景图像(
android:background=“@drawable/yourcycle”

3) 最后,您可以将任何文本放入(
android:text=“blabla”
)+您可以使用
按钮从代码中更改它。setText(“blabla”)

4) 您还需要使用按钮更改字体大小。例如,setTextSize(49)。
5) 最后,为了让它位于中心,
android:gravity=“center”



虽然它确实居中,但缩放不适用。我已经发布了一些代码来展示我所做的尝试,要使TextView精确到其容器高度的50%,您需要编写一些代码——仅使用布局xml是不可能的。但我怀疑你是否需要。您可以将容器高度设置为某些DP,将文本视图设置为某些SP。例如,容器200dp和文本视图文本大小20SP。这将在不同的屏幕尺寸(密度)下进行良好的缩放。或者,您想进行缩放还有其他原因吗?