如何在Android中相对于图像定位textView

时间:2015-04-21 00:43:10

标签: android xml imageview relativelayout

我正在为汽车开发一款应用程序,用户可以注册汽车的车牌号码。在主屏幕中,我想用用户的盘子(这是一个textView)显示汽车的图像。问题是,每当我为某些分辨率修复它时,它就会停止在其他分辨率上运行,是否有人知道如何解决这个问题?

这是我的xml代码:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context="com.bsbapps.happycars.HomeFragment">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <Button
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/notify"/>
        <Button
            android:layout_width="0px"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="callSubscribe"
            android:text="@string/subscribe"/>
    </LinearLayout>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="bottom"
        android:gravity="center">
        <ImageView
            android:id="@+id/car_image"
            android:adjustViewBounds="true"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/car"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="jfk-4548"
            android:textStyle="bold"
            android:layout_marginBottom="30dip"
            android:layout_alignBottom="@id/car_image"
            android:layout_centerHorizontal="true"/>


    </RelativeLayout>

</LinearLayout>

如果有人想要重现我所拥有的东西,那么这就是图像:

enter image description here

我得到的结果是(在Nexus 9上):

enter image description here

和(在Nexus 5上):

enter image description here

1 个答案:

答案 0 :(得分:0)

  

问题在于,每当我修复某些分辨率时,它就会停止在其他分辨率上工作,有人知道如何解决这个问题吗?

如果您想要进行基于维度的操作,则应使用multiple "dimens" files

更改

android:layout_marginBottom="30dip"

android:layout_marginBottom="@dimen/someDimensionName"

然后在名为someDimensionName的资源文件夹下的多个dimens.xml文件中声明values-<screen-resolution>

values / dimens.xml(默认)

<dimen name="someDimensionName">30dp</dimen>

values-sw600dp / dimens.xml(大屏幕)

<dimen name="someDimensionName">60dp</dimen>

(确切的values-尺寸会有所不同;这只是一个示例。有关详细信息/尺寸选项,请参阅the documentation。)