Android - 正确定位视图

时间:2015-03-08 09:51:35

标签: android

在我的机器人中我想: - 在这里"或"是一个文本视图..这个textview被圆形视图包围,一条垂直线通过圆圈..

这是我的代码: -

此代码适用于带圆角的textview

可绘制文件夹中的

round.xml : -

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <stroke android:color="#22ff55" android:width="3dip"/>

    <corners
        android:bottomLeftRadius="30dp"
        android:bottomRightRadius="30dp"
        android:topLeftRadius="30dp"
        android:topRightRadius="30dp" />

    <size
        android:height="60dp"
        android:width="60dp" />

</shape>

并在我的布局

我的文字视图为:

<TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_tv"
    android:gravity="center_vertical|center_horizontal"
    android:text="or"
    android:textColor="#000"
    android:textSize="20sp" />

和垂直线的代码: -

<View
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:background="#FF0000FF" />

所以我有带圆角圆和垂直线的textview ..

但我的问题是如何加入这两个代码??? 或者如果我的概念是错误的......我怎么能实现那个东西??????建议我......

3 个答案:

答案 0 :(得分:2)

最简单的方法是使圆圈和线条成为.png图像,并使其成为带有文本的TextView的背景。

另外,如果可能的话,你应该避免使用分隔符的视图(比如那条线)。视图是一直非常重要的创建和布局。如果你有一个复杂的应用程序,他们会回来咬你的性能问题。

答案 1 :(得分:0)

正如您所做的那样,您可以在FrameLayout中获取Textview和视图。 FrameLayout将帮助您显示对另一个

的一个控件
<FrameLayout 
  android:layout_width="wrap_content"
  android:layout_height="wrap_content">
//Put here
</FrameLayout>

答案 2 :(得分:0)

您可以使用RelativeLayout作为上述所有视图的容器,并使用它来正确定位所有视图。

这是一个让你入门的例子:

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

 <Button
   android:id="@+id/btnRegister"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentLeft="true" />

 <Button
   android:id="@+id/btnLogin"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_alignParentRight="true" />

  <View
    android:layout_width="1dp"
    android:layout_height="match_parent"
    android:layout_centerHorizontal="true"
    android:background="#FF0000FF" />

  <TextView
    android:id="@+id/tv"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/round_tv"
    android:layout_centerInParent="true"
    android:text="or"
    android:textColor="#000"
    android:textSize="20sp" />


</RelativeLayout>