按钮被裁剪

时间:2013-08-24 22:46:57

标签: android xml button

我有这种布局,当它们变得可见时,在某些设备上会再次出现反复按钮,因此您只能看到其中的一半。 任何想法为什么? 它可能是利润吗?我该如何解决?

<?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>

谢谢!

1 个答案:

答案 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>

通过这种方式,模拟器和手机将看到它们必须采用的尺寸。

希望它有所帮助!