如何在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的主要内容,如果未能解决你的问题,请参考以下文章

在放大和缩小时在imageview上移动对象

Android当用户单击按钮时如何移动ImageView(对于游戏)

如何在android中使用SwipeRefreshLayout和imageView进入NestedScrollView

如何使用java将相机拍摄的图像添加到Android中的imageviewer?我试过下面的代码

Android:如何停止在 ImageView 上应用的无限动画?

如何将ImageView放在Xamarin.Android应用程序中,根据设备屏幕大小自行调整大小?