Я хочу разместить картинку под картинкой в формате FrameLayout
или LinearLayout
, поэтому, когда я фотографирую свою камеру, фотографии должны быть расположены друг под другом.место картинка внизу картинка
Проблема в том, что я могу добавить только одну фотографию. Там появляется следующее сообщение об ошибке для второго:
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.
Вот мой layoutfile:
<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>
Для этого я сначала создать новый объект для ImageView
с: imageView = 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);
EDIT: Я попробовал его с созданием новой 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);
где viewGroup
является LinearLayout
Какой «просмотр» вы добавляете в ImageView? И «FrameLayout», и «ScrollView» должны содержать только * one * child view (дочернее представление может содержать больше просмотров). – Jave
К 'FrameLayout'. Какой макет поддерживает более одного ребенка или есть ли другие возможности? – user3603935
Есть много, 'LinearLayout' и' RelativeLayout' - два. Кажется, что вы хотите сделать, это «LinearLayout» непосредственно внутри «ScrollView», а затем добавить созданный «ImageView» в этот макет. Из вашего примера видно, что вы каждый раз создаете новый макет и добавляете это. – Jave