如何在 Android 中相对于图像定位 textView
How to position a textView relative to an image in Android
我正在开发一个汽车应用程序,用户可以在其中注册汽车的车牌号。在主屏幕中,我想显示带有用户车牌的汽车图像(这是一个 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>
如果有人想完全重现我所拥有的,请看下面的图片:
我得到的结果是(在 Nexus 9 上):
并且(在 Nexus 5 上):
The problem is, whenever I fix it for some resolutions it stops working on others, does anyone know how fix this?
如果你想做基于维度的,你应该使用multiple "dimens" files。
改变
android:layout_marginBottom="30dip"
至
android:layout_marginBottom="@dimen/someDimensionName"
然后在名为 values-<screen-resolution>
:
的资源文件夹下的多个 dimens.xml 文件中声明 someDimensionName
values/dimens.xml(默认)
<dimen name="someDimensionName">30dp</dimen>
values-sw600dp/dimens.xml(大屏幕)
<dimen name="someDimensionName">60dp</dimen>
(确切的 values-
大小会有所不同;这只是一个示例。有关更多 details/size 选项,请参阅 the documentation。)
我正在开发一个汽车应用程序,用户可以在其中注册汽车的车牌号。在主屏幕中,我想显示带有用户车牌的汽车图像(这是一个 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>
如果有人想完全重现我所拥有的,请看下面的图片:
我得到的结果是(在 Nexus 9 上):
并且(在 Nexus 5 上):
The problem is, whenever I fix it for some resolutions it stops working on others, does anyone know how fix this?
如果你想做基于维度的,你应该使用multiple "dimens" files。
改变
android:layout_marginBottom="30dip"
至
android:layout_marginBottom="@dimen/someDimensionName"
然后在名为 values-<screen-resolution>
:
someDimensionName
values/dimens.xml(默认)
<dimen name="someDimensionName">30dp</dimen>
values-sw600dp/dimens.xml(大屏幕)
<dimen name="someDimensionName">60dp</dimen>
(确切的 values-
大小会有所不同;这只是一个示例。有关更多 details/size 选项,请参阅 the documentation。)