我正在尝试使用动态缩放测试视图来进行布局。布局看起来像 - 请参见左下角。
现在该部分是复合控件。圆形缩放很好,但我无法弄清楚如何在正确缩放时使文本完美地定位在中间。我希望文本可以说容器大小的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"
/>
答案 0 :(得分:0)
将TextView放在容器中。并将Gravity(Views属性)设置为Center。 将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
中居中答案 1 :(得分: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>
答案 2 :(得分: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"