我在Android上开发了一款应用。屏幕在手机上显示良好 - 例如全屏显示。但是当我在我的三星平板电脑10英寸上运行它时 - 它只占屏幕的四分之一。这是我的布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:padding="10px">
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<ImageView
android:id="@+id/mainheader"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_x="30px"
android:layout_y="5px"
android:src="@drawable/mainheader"
/>
<TextView android:id="@+id/err"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#FF0000"
android:layout_x="80px"
android:layout_y="25px" />
<TextView android:id="@+id/usernamelbl"
android:layout_width="wrap_content"
android:layout_height="35px"
android:text="User Name"
android:layout_x="40px"
android:layout_y="75px"/>
<EditText android:id="@+id/username"
android:layout_width="150px"
android:layout_height="wrap_content"
android:layout_below="@id/err"
android:background="@android:drawable/editbox_background"
android:singleLine="true"
android:layout_x="120px"
android:layout_y="70px"/>
<TextView android:id="@+id/passwordlbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Password"
android:layout_x="40px"
android:layout_y="110px"/>
<EditText android:id="@+id/password"
android:layout_width="150px"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_x="120px"
android:layout_y="105px"
android:password="true"
android:singleLine="true"/>
<Button android:id="@+id/loginBtn"
android:text="Login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="login_click"
android:layout_x="50px"
android:layout_y="150px"
/>
<Button android:id="@+id/signupBtn"
android:text="Sign Up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="signUp_click"
android:layout_x="130px"
android:layout_y="150px"/>
</AbsoluteLayout>
</LinearLayout>
我的表现xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mpest"
android:versionCode="1"
android:versionName="1.0">
<application android:label="" android:icon="@drawable/icon">
<activity android:name="MainActivity"
android:label="">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AddFarmActivity" android:theme="@android:style/Theme.Dialog"></activity>
<activity android:name=".AddPestStepOneActivity"></activity>
<activity android:name=".AddPestStepTwoActivity"></activity>
<activity android:name=".ThankYouActivity"></activity>
<activity android:name=".ReportListActivity" ></activity>
<activity android:name=".ReportDetailsActivity" ></activity>
<activity android:name=".ProfileActivity" ></activity>
<activity android:name=".AddPestActivity"></activity>
<activity android:name=".AddEnvironmentActivity"></activity>
<activity android:name=".AlertActivity"></activity>
<activity android:name=".SignUpActivity"></activity>
<activity android:name=".ChangeUserImageActivity" android:theme="@android:style/Theme.Dialog"></activity>
<activity android:name=".ReplyActivity" android:theme="@android:style/Theme.Dialog"></activity>
<receiver android:name=".OnAlarmReceiverActivity"/>
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
答案 0 :(得分:3)
您的前两个布局代码都设置为wrap_content
。这意味着他们只需要尽可能多地填充屏幕以显示所有内容。
将它们更改为fill_parent
,如下所示:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" // fill_parent here
android:background="@drawable/background"
android:padding="10px">
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" //and fill_parent here
android:gravity="center" >
答案 1 :(得分:1)
尝试
LinearLayout xmlns:android =&#34; http://schemas.android.com/apk/res/android" 机器人:layout_width =&#34; FILL_PARENT&#34; 的机器人:layout_height =&#34; FILL_PARENT&#34; 强> 机器人:背景=&#34; @可绘制/背景&#34; 机器人:填充=&#34; 10px的&#34;
答案 2 :(得分:1)
尝试使用&#34; fill_parent&#34; 而不是 wrap_content
更改layout_width值也许这有助于解决你的问题:D
答案 3 :(得分:1)
我知道这是一个老问题,但我创建了一个工具,可以在平板电脑上按比例缩放布局。即使你使用dp单位,你的布局看起来不正确的原因是因为你可能只设计了一个“密度桶”。这些桶中有四个:小型,普通型,大型和Xlarge(平板电脑)。
您可以在此处找到我的工具和指南:
http://onemanmobile.blogspot.com/2012/04/how-to-scale-your-android-layouts-to.html
答案 4 :(得分:1)
在清单文件中添加这些行
<supports-screens android:xlargeScreens="true" android:largeScreens="true" android:smallScreens="true" android:normalScreens="true"/>