在图片下放置图片

时间:2014-10-12 09:02:59

标签: android android-layout

我想将照片放在FrameLayoutLinearLayout的照片下,所以当我用相机拍照时,照片应放在彼此之下。

问题是,我只能添加一张图片。第二个出现以下错误:

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=131074, result=-1, data=null} to activity {com.unitnode/com.unitnode.OpenprojectAlternative}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

这是我的布局文件:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/openproctScrollview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:background="#FFFFFF"
    android:fillViewport="true"
    android:padding="15dp">

    <FrameLayout
        android:id="@+id/pictureTabLinearLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >

        <Button
            android:id="@+id/neuesBildButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/addtabbutton" />
    </FrameLayout>
</ScrollView>

为此,我首先使用ImageViewimageView = new ImageView(this.getActivity())创建一个新对象;并设置:imageView.setAdjustViewBounds(true);

然后我将图片设置为ImageView,设置高度并将ImageView添加到布局:

imageView.setMaxHeight(createScaleBitmap.getHeight());
Log.d("bmRotated.getHeight()", "bmRotated.getHeight() " + createScaleBitmap.getHeight());
imageView.setImageBitmap(createScaleBitmap);

FrameLayout.LayoutParams viewParameters = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
viewGroup.addView(imageView, viewParameters);

编辑:我尝试过每次创建一个新的LinearLayout。但结果是一样的(我甚至不能再添加一张图片):

  

layout = new LinearLayout(this.getActivity());

        LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        layout.setLayoutParams(layoutParams);

        viewGroup.addView(layout);
        layout.addView(imageView);

其中viewGroupLinearLayout

2 个答案:

答案 0 :(得分:0)

您只添加了一个framelayout。 “framelayout的数量=要存储的图片数量。” 因此,当您想要将图片附加到框架并使其不可见并使另一个框架可见时,然后再次运行该意图。 向我询问进一步的帮助。

答案 1 :(得分:0)

如果您向FrameLayout添加多个图像,它们将被有效堆叠,您只能在堆栈顶部看到图像。

这是你想要的吗?

如果您想逐个展示它们并滚动它们(当您使用ScrollView时),那么您应该考虑使用GridViewListView并添加图像到适配器。