我已按照以下链接进行操作,以便我的应用程序可以支持不同的屏幕尺寸:
Supporting multiple screens in android
该解决方案完美无缺。但我担心的是,当我有一个拥有8-9个屏幕的android应用程序时,那意味着我将拥有8-9个不同的.xml布局文件。现在通过文件夹分叉来支持所有屏幕,这意味着我已经管理了几乎五十多个xml文件的布局,并且为了简单地更改UI,我必须转到所有文件夹并在xml文件中实现该更改。那么有没有更好的方法,我的意思是这样的布局,可以只调整控件本身或类似的东西?
答案 0 :(得分:3)
我认为这不是太复杂。在布局文件夹中创建所有布局。使用styles.xml, dimens.xml and strings.xml
保存字体大小和字符串。当您的布局最终确定,即不需要进行任何更改时,请从布局文件夹中复制所有这些布局并粘贴到layout-small, layout-large, layout-xlarge
中。因此,当您需要更改字符串,样式和字体大小时,您必须仅在值文件夹中进行更改。
例如 -
而不是android:text="Hello"
使用android:text="string/hello"
并在strings.xml中保存hello的值。类似地,文字大小为android:textSize="@dimen/btxt"
。
这是最佳选择之一。
答案 1 :(得分:1)
我创建了一个相对大小的单位。 可以使用此大小单位为所有屏幕构建一个布局xml文件。 通过链接sdp sdk可以获得此大小单位。 以下是使用此sdk构建的布局XML的示例:
<RelativeLayout 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"
android:background="@android:color/white"
android:gravity="center">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/give_us_a_review_landmine_main_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical"
android:paddingBottom="@dimen/_27sdp"
android:paddingLeft="@dimen/_43sdp"
android:paddingRight="@dimen/_43sdp"
android:paddingTop="@dimen/_50sdp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Intuit"
android:textColor="@android:color/black"
android:textSize="@dimen/_40sdp"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_minus10sdp"
android:paddingBottom="@dimen/_15sdp"
android:orientation="horizontal" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="♡"
android:textColor="#ED6C27"
android:textSize="@dimen/_70sdp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:includeFontPadding="false"
android:text="U"
android:textColor="@android:color/black"
android:textSize="@dimen/_70sdp" />
</LinearLayout>
<TextView
android:id="@+id/give_us_a_review_landmine_text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingBottom="@dimen/_12sdp"
android:text="Rate us so we can grow and help more people get their finances in check"
android:textColor="@android:color/black"
android:textSize="@dimen/_16sdp" />
<TextView
android:id="@+id/give_us_a_review_landmine_text_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="★★★★★"
android:textColor="#747474"
android:textSize="@dimen/_22sdp"
android:textStyle="bold" />
<Button
android:id="@+id/give_us_a_review_landmine_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="@dimen/_25sdp"
android:padding="@dimen/_8sdp"
android:text="Rate"
android:textSize="@dimen/_15sdp"
android:visibility="visible"
android:textColor="@android:color/white"
android:gravity="center"
android:minWidth="120dp"
android:includeFontPadding="false"
android:background="#0ac775"
android:singleLine="true" />
</LinearLayout>
</LinearLayout>
结果如下:
请注意,UI元素会随着屏幕尺寸而缩放。
答案 2 :(得分:0)
看看这个问题:LINK
然后,您可以创建一个包含所有XML布局中常见内容的XML文件,然后为每个布局添加或合并所需的公共XML部分,这样您只需编辑一次公共XML文件,然后编辑所有其他XML文件然后,布局将包含新的更改。