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

Posted

技术标签:

【中文标题】如何在android中根据上面的imageview对齐textview【英文标题】:how to align textview according to above imageview in android 【发布时间】:2013-03-31 00:36:08 【问题描述】:

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

 <ImageView
    android:id="@+id/imageView1"
    android:layout_
    android:layout_
    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_
    android:layout_
    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>

【问题讨论】:

【参考方案1】:

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_
              android:gravity="center_horizontal"
              android:layout_>
    <ImageView
            android:id="@+id/imageView1"
            android:layout_
            android:layout_
            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_
            android:layout_
            android:layout_below="@id/imageView1"
            android:text="Test Titelzeile"   />
</RelativeLayout>

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

【讨论】:

【参考方案2】:

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

使用 LayoutParams 来做。

【讨论】:

以上是关于如何在android中根据上面的imageview对齐textview的主要内容,如果未能解决你的问题,请参考以下文章