Android布局结构

时间:2011-11-15 07:33:41

标签: android android-layout textview android-imageview

我想创建如下的布局..

enter image description here

这是我遇到的XML

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/display_photo"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/username"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:ellipsize="end"
                android:singleLine="true"
                android:text="Username"
                android:textColor="#000000" />

            <TextView
                android:id="@+id/timestamp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="0"
                android:singleLine="true"
                android:text="2 hours ago"
                android:textColor="#000000" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

            <TextView
                android:id="@+id/location"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:text="Location"
                android:textColor="#000000" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

如何在某些字符之后将文字翻过来...以及如何将时间放在右手边?

3 个答案:

答案 0 :(得分:2)

要实现这种布局,最好使用相对布局,它将在任何设备中正确呈现。这样的东西应该没问题。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/relativeLayout1"
android:layout_width="fill_parent" android:gravity="center"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#FFFFFF">   
<ImageView android:layout_height="100px" android:id="@+id/deal_image"
    android:layout_width="120px" android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"></ImageView>
<TextView android:id="@+id/deal_description"
    android:layout_width="fill_parent" android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/deal_image" android:layout_marginLeft="5dip"
    android:padding="2dp" android:textColor="#000000" />
<TextView android:id="@+id/deal_time" android:layout_height="wrap_content"
    android:layout_width="120px" android:padding="2dp"
    android:layout_below="@+id/deal_image" android:textColor="#FFFFFF"
    android:background="#13ADDF" android:textSize="12dip"></TextView>

<TextView android:id="@+id/real_price" android:layout_height="wrap_content"
    android:layout_width="120px" android:padding="2dp"
    android:layout_below="@id/deal_time" android:textColor="#FFFFFF"
    android:background="#13ADDF" android:textSize="12dip"></TextView>
<TextView android:id="@+id/deal_price" android:layout_height="wrap_content"
    android:layout_width="fill_parent" android:padding="2dp"
    android:background="#FFFFFF" android:layout_toRightOf="@id/real_price"
    android:layout_toLeftOf="@id/buy_button" android:textStyle="bold"
    android:textColor="#13ADDF" android:textSize="15dip"
    android:layout_below="@id/deal_description" android:gravity="center"
    android:layout_alignParentBottom="true" android:layout_alignBottom="@id/buy_button"></TextView>


</RelativeLayout>

您可以编辑它,并且可以非常轻松地实现您想要显示的结构。

答案 1 :(得分:0)

对于这种布局,最好是使用带有水平方向的简单LinearLayout,以及带有信息的两个textView。

要获得点(...),您必须设置ellipsize并使名称textview的名称填充所有可用空间使用权重属性。 nameText的layout_weight = 1,timeText的layout_weight = 0。

希望有所帮助:)

答案 2 :(得分:0)

请查看以下代码可能对您有所帮助

 <?xml version="1.0" encoding="utf-8"?>
        <LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
            <RelativeLayout android:id="@+id/relativeLayout1" android:layout_height="wrap_content" android:layout_width="fill_parent">
                <ImageView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageView1" android:layout_alignParentLeft="true" android:background="@drawable/main_prf"></ImageView>
                <LinearLayout android:layout_height="wrap_content" android:layout_toRightOf="@+id/imageView1" android:layout_width="wrap_content" android:id="@+id/linearLayout2" android:orientation="vertical" android:layout_centerVertical="true">
                    <RelativeLayout android:layout_height="fill_parent" android:layout_width="wrap_content" android:id="@+id/relativeLayout2">
                        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="TextView" android:id="@+id/textView1" android:layout_toLeftOf="@+id/textView4" android:layout_alignParentLeft="true"></TextView>
                        <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="TextView" android:id="@+id/textView4" android:layout_alignParentRight="true"></TextView>
                    </RelativeLayout>
                    <TextView android:text="TextView" android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
                    <TextView android:text="TextView" android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
                </LinearLayout>
            </RelativeLayout>

        </LinearLayout>

layout file