我正在Eclipse中的4in模拟器上开发我的应用程序。我的手机是4.6英寸的Android设备,当我在那里测试时,内容没有正确缩放。
看起来手机会将内容保持在相同的大小,它只是将所有内容都移动起来,并留出额外的空间。
根据我的阅读,我认为只要我使用dp而不是in,就应该保持相同的布局。这是否意味着我的图像也必须是dp?
有什么建议吗?
编辑:
以下是一些代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/tfltestbg2"
android:orientation="vertical" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="55dp"
android:background="@drawable/tfl_header_port"
android:gravity = "center_horizontal"
android:layout_gravity = "center_horizontal"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="40dp"
android:orientation="horizontal"
android:layout_gravity = "center"
android:gravity = "center"
>
<Button
android:id="@+id/buttonTakePic"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:gravity = "left"
android:background="@drawable/takepic_button" />
<Button
android:id="@+id/mMegaGalleryButton"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity = "center"
android:background="@drawable/add_fotos" />
<Button
android:id="@+id/mGalleryButton"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:gravity = "right"
android:background="@drawable/selectpic"
android:paddingLeft = "10dp"
android:paddingRight = "10dp"/>
</LinearLayout>
<LinearLayout
android:id="@+id/image_container"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:background="@drawable/outline_box"
android:gravity="center">
<FrameLayout
android:layout_width = "match_parent"
android:layout_height = "fill_parent"
android:gravity = "center"
android:layout_gravity = "center">
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background = "@drawable/blank"
android:gravity="center" />
<ImageView
android:id="@+id/picsImage"
android:layout_width = "100dp"
android:layout_height = "100dp"
android:layout_gravity="center"
android:gravity="center"
android:background = "@drawable/picture_box"/>
</FrameLayout>
</LinearLayout>
<Button
android:id="@+id/mEditButton"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="@drawable/edit_pic_button" />
<View
android:layout_width="match_parent"
android:layout_height="10dp" />
<Button
android:id="@+id/buttonUploadPic"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_gravity="center"
android:background="@drawable/upload_pic_button" />
</LinearLayout>
答案 0 :(得分:0)
使用相对布局而不是线性布局,如果对不同尺寸的屏幕使用app,则不要使用40dp,50dp等硬编码尺寸。
答案 1 :(得分:0)
布局中的问题是您在错误的位置使用了固定值!而是在按钮中android:layout_width="100dp"
(在水平布局中),您应该使用android:layout_width="fill_parent"
您必须为此按钮为layout_weight
设置零值,以便它们可以与此布局中的其他同级共享空间。
答案 2 :(得分:0)
将固定dp转换为重量的最简单方法:
改变这个:
机器人:layout_width =&#34; 100dp&#34;
到此:
机器人:layout_width =&#34; 0dp&#34;
机器人:layout_weight =&#34; 100&#34;
为所有按钮执行此操作,它们看起来与4&#34;并将在任何屏幕上完美缩放。