0

我一直在实现一个非常漂亮的相机对话框片段,遵循它的AndroidVogella指南。

但是,我在我制作的对话框中得到一个透明框(不得不用手机拍照)

而且我认为这与不重绘有关DialogFragment,因为当我从平板电脑截取屏幕截图时,它看起来应该是这样的:

你知道如何解决这个问题,因为我不知道为什么。

这里的xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@drawable/fragment_background"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="50dp">

<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_width="500dp"
    android:layout_height="500dp"
    android:layout_weight="1">
</FrameLayout>

<LinearLayout
      android:orientation="horizontal"
      android:layout_width="wrap_content"
      android:layout_height="fill_parent"
      android:layout_alignParentBottom = "true">

      <GToggleButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/color_effects"
          android:drawableTop="@drawable/bw_icon" />

      <GButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/button_capture"
          android:drawableTop="@drawable/cam" />

      <GButton
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/switch_cam"
          android:drawableTop="@drawable/cam_facing" />

  </LinearLayout>

</LinearLayout>

同样在 onResume 方法中我这样做:

    Window window = getDialog().getWindow();
    window.setLayout(AbsoluteLayout.LayoutParams.WRAP_CONTENT, AbsoluteLayout.LayoutParams.FILL_PARENT);

    window.setGravity(Gravity.CENTER);

但是当我将宽度和高度都设置为 FIll_PARENT 时,它不会显示透明框,但我想要一个不会填充整个父 UI 的对话框。

4

1 回答 1

1

我试图在另一个上运行该程序tablet,发现这是一个tablet特定或API特定的问题。

问题在于Samsung GALAXY Tab 10.1API 15

它工作正常Samsung Galaxy Tab 2但不是Samsung Galaxy Tab 3,需要更多的调试。

于 2014-04-22T11:09:48.103 回答