我正在为汽车开发一款应用程序,用户可以注册汽车的车牌号码。在主屏幕中,我想用用户的盘子(这是一个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上):
答案 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。)