我有这种布局,当它们变得可见时,在某些设备上会再次出现反复按钮,因此您只能看到其中的一半。 任何想法为什么? 它可能是利润吗?我该如何解决?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/activity_camera"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clipChildren="false" >
<FrameLayout
android:id="@+id/camera_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_alignEnd="@id/camera_preview"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clipChildren="false" />
<ImageView
android:id="@+id/head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/square" />
<ImageView
android:id="@+id/body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/square" />
<ImageButton
android:id="@+id/stop"
android:src="@android:drawable/ic_delete"
android:layout_height="40dp"
android:layout_width="40dp" />
<ImageButton
android:id="@+id/takePic"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/activity_vertical_margin"
android:src="@android:drawable/ic_menu_camera" />
<Button
android:id="@+id/go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/camera_preview"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom|right"
android:layout_margin="20dp"
android:clickable="false"
android:text="Go!"
android:visibility="invisible" />
<Button
android:id="@+id/again"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="20dp"
android:clickable="false"
android:gravity="center_vertical|center_horizontal"
android:text="Again"
android:visibility="invisible" />
</RelativeLayout>
谢谢!
答案 0 :(得分:2)
是的,它可能是边缘:我猜这个代码不起作用的设备是最小的或具有最低分辨率的设备。为了解决您的问题,我建议您在res文件夹中创建一个dimens.xml文件,并将其称为值 - ?? dpi(取决于您遇到问题的分辨率)。这是一个例子:
我的布局文件(res / layout / mylayout)
<LinearLayout
android:height="@dimen/heightmylayout"
android:width="@dimen/widthmylayout"
android:orientation="horizontal"/>
我的Dimens文件:尽可能多的;这里有一个用于mdpi,另一个用于hdpi:
HDPI(res / values-hdpi / dimens.xml):
<resources>
<dimen name="heightmylayout">160dp</dimen>
<dimen name="widthmylayout">160dp</dimen>
</resources>
MDPI(res / values-mdpi / dimens.xml):
<resources>
<dimen name="heightmylayout">110dp</dimen>
<dimen name="widthmylayout">110dp</dimen>
</resources>
通过这种方式,模拟器和手机将看到它们必须采用的尺寸。
希望它有所帮助!