我制作了一款Android应用。我希望它也可以在平板电脑上使用,具有相同的布局文件。然而,不是“缩放”界面以匹配平板电脑的大小,而是将其设置为手机界面的大小,只是在大显示屏上,导致很多混乱。
我尝试过像here这样的事情,但我不能因为很多原因(例如,我正在使用当时不存在的库)。
除了为所有尺寸做不同的布局文件外,我如何完成我的任务?请不要链接我this,我读过几次并且无法理解如何使其正常工作(除了一些使其以丑陋和模糊的方式扩展的limitLarge属性)。
谢谢!
编辑:示例布局和以下代码:
这就是它在手机上的样子:
这就是它在平板电脑上的外观:
你可以看到布局“保持”它的形成,但我希望它“向上扩展”以占据整个屏幕。我觉得'问题在于'dp'尺寸单位(因为大屏幕有更多'dp'?),但我无法解决它。我对这种类型的开发比较新,所以请帮助我:))
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"
android:id="@+id/authLayout">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="FTW Name Placeholder"
android:id="@+id/textTitle"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:layout_gravity="center_horizontal" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Medium Text"
android:id="@+id/textViewInst"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Connect"
android:id="@+id/btnConnect"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Username:"
android:id="@+id/textView58" />
<EditText
android:layout_width="220dp"
android:layout_height="wrap_content"
android:id="@+id/editTextUsername"
android:layout_marginLeft="10dp" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="15dp"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Password"
android:id="@+id/textView59" />
<EditText
android:layout_width="220dp"
android:layout_height="wrap_content"
android:id="@+id/editTextPassword"
android:layout_marginLeft="15dp" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Auth"
android:id="@+id/authBtn"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="100dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:id="@+id/textView1"
android:scrollbars = "vertical"
android:gravity="bottom"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:id="@+id/buttonSend"
android:layout_gravity="center_horizontal" />
</LinearLayout>
</RelativeLayout>
答案 0 :(得分:1)
为此可以在res / values-sw600dp中的dimens.xml中设置宽度和高度,这适用于7“平板电脑
答案 1 :(得分:0)
您无需针对任何特定API开发平板电脑应用,只需提供针对更高密度的资源
您可以存储具有相同名称但不同密度后缀的布局,例如
layout / mylayout.xml - 任何设备 layout-w700dp / mylayout.xml - 宽度至少为700dp的设备。
平板电脑从700dp左右开始(这个值来自我的经验,没有实际数据,所以不要引用我的信息)
阅读这些文件以了解更多信息
http://developer.android.com/guide/topics/resources/providing-resources.html http://developer.android.com/guide/practices/screens_support.html
PS 帮自己一个忙,目标4.0及以上 至少,较旧的设备很难与之合作,现在市场份额很小。
答案 2 :(得分:0)
你很少想要像这样设置硬宽度
android:layout_width="220dp"
你到处都有类似的东西,你需要用match_parent
代替它,以确保宽度与你的父版面宽度相同
与您拥有此按钮的按钮相同
android:layout_width="wrap_content"
使它们与父级匹配,它们将跨越屏幕的宽度。
无需将dimens
存储在单独的文件夹中