2014-10-12 5 views
0

Я хочу разместить картинку под картинкой в ​​формате 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

+0

Какой «просмотр» вы добавляете в ImageView? И «FrameLayout», и «ScrollView» должны содержать только * one * child view (дочернее представление может содержать больше просмотров). – Jave

+0

К 'FrameLayout'. Какой макет поддерживает более одного ребенка или есть ли другие возможности? – user3603935

+0

Есть много, 'LinearLayout' и' RelativeLayout' - два. Кажется, что вы хотите сделать, это «LinearLayout» непосредственно внутри «ScrollView», а затем добавить созданный «ImageView» в этот макет. Из вашего примера видно, что вы каждый раз создаете новый макет и добавляете это. – Jave

ответ

0

Вы добавили только один framelayout. «Количество кадров: количество сохраняемых изображений». Итак, когда вы хотите сохранить изображение, прикрепленное к кадру, сделать его невидимым и сделать другой кадр видимым, а затем снова запустить намерение. Запросите меня для дальнейшей помощи.

+0

Я пробовал это с созданием новых 'LinearLayouts' каждый раз (см. Мое Редактирование). Правильно ли эта попытка? – user3603935

+0

Dont знать погоду, это правильно, я не пробовал, но, пожалуйста, попробуйте сделать меньше макетов, так как это будет подчеркивать поток пользовательского интерфейса. Попробуйте любой из двух продуктов 1. Используйте динамический фрагмент или 2. Используйте два FrameLAyout. – therealprashant

0

Если вы добавите несколько изображений в FrameLayout, они будут эффективно сложены, и вы увидите только изображение в верхней части стека.

Это то, что вы хотите?

Если вы хотите, чтобы показать их один за другим и прокручивать их (как вы используете ScrollView), то вы должны рассмотреть возможность использования GridView или ListView и добавить изображения к адаптеру.

Смежные вопросы