0

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

现在该部分是一个复合控件。圆圈缩放得很好,但我不知道如何在正确缩放的同时使文本完美地定位在中间。我希望文本位于容器大小的 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"
 />
4

3 回答 3

0

我建议您制作一个 Button 小部件并将图像设置为具有 .png 格式的背景,具有透明背景。

像这样: 在此处输入图像描述

之后确保将其保存为 .png

1)然后去你的 xml 布局创建一个 Button 或 ImageButton 小部件。
2) 将此图片设置为背景图像 ( android:background="@drawable/yourcircle")
3) 然后最后您可以将任何文本放入 ( android:text="blabla") + 您可以从代码中更改它,确保使用Button.setText("blablabla")
4) 您还需要使用 Button.setTextSize 更改字体大小(49) 例如。
5)最后让它在中心,android:gravity="center"


于 2012-12-05T19:01:53.077 回答
0

将 TextView 放在容器内。并将重力(视图属性)设置为中心。将 TextViews 的宽度和高度设置为 wrap_content。这将使 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>

这将使 TextView 在 FrameLayout 内居中

于 2012-12-05T18:17:57.903 回答
0

尝试这个

<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>
于 2012-12-05T18:32:12.023 回答