如何在android中根据上面的imageview对齐textview

时间:2013-03-31 00:36:09

标签: android android-layout landscape landscape-portrait

每当我在不同屏幕尺寸的设备上以横向模式测试时,我对布局的结果都不满意。 在肖像中,我喜欢textview的边缘。由于我当前的imageview图像大小不会填满某些设备的整个宽度,因此在左侧和右侧都有一些空白,这很好。 但是,textview的边距也应该考虑这个空白并以某种方式添加它。我知道我可以为横向模式创建不同的xml样式,但任何固定的边距都不会对此有所帮助...感谢您提前提供任何帮助

enter image description here

 <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:scaleType="fitStart"
    android:adjustViewBounds="true"
    android:src="@drawable/start1_8" />

<TextView
    style="@style/DescriptionTitle"
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/imageView1"
    android:text="Test Titelzeile"   />

<style name="DescriptionTitle" parent="@android:style/TextAppearance">
    <item name="android:textColor">#0099cc</item>
    <item name="android:textStyle">bold|italic</item>
    <item name="android:textSize">20sp</item>
    <item name="android:layout_gravity">center_vertical|left</item>
    <item name="android:gravity">top|left</item>
    <item name="android:layout_marginLeft">15dp</item>
    <item name="android:layout_marginRight">15dp</item>
    <item name="android:layout_marginTop">5dp</item>

</style>

2 个答案:

答案 0 :(得分:3)

我会把它放在像这样的相对布局中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:gravity="center_horizontal"
              android:layout_height="match_parent">
    <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:scaleType="fitStart"
            android:adjustViewBounds="true"
            android:src="@drawable/Untitled-1" />
    <TextView
            style="@style/DescriptionTitle"
            android:id="@+id/textView1"
            android:layout_alignLeft="@id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/imageView1"
            android:text="Test Titelzeile"   />
</RelativeLayout>

然后,无论视图大小或方向如何,它都将处于正确的相对位置。

答案 1 :(得分:0)

在运行时调整视图大小并使用(如screenwidth / 4)比例hor图像宽度和位置。

使用LayoutParams来完成它。