2016-09-19 12 views
0

Я пытаюсь создать 15-тихуровую (высоту) «графическую бумагу», например, с помощью GridLayout, как определено на xml.GridLayout динамически присоединяет ImageView

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:columnCount="15" 
        android:orientation="vertical" 
        android:rowCount="20" 
        android:layout_margin="2dp" 
        android:id="@+id/gridLayout_mazeLayout"> 
        <View 
         android:layout_width="15dp" 
         android:layout_height="15dp" 
         android:layout_row="0" 
         android:layout_column="0" 
         android:background="#51ffff" 
         android:layout_margin="1dp"/> 
        <View 
         android:layout_width="15dp" 
         android:layout_height="15dp" 
         android:layout_row="0" 
         android:layout_column="1" 
         android:background="#51ffff" 
         android:layout_margin="1dp"/> 
        <View 
         android:layout_width="15dp" 
         android:layout_height="15dp" 
         android:layout_row="0" 
         android:layout_column="2" 
         android:background="#51ffff" 
         android:layout_margin="1dp"/> 
    // rest of rows and cols not shown. 
    </GridLayout> 

Я хотел бы приложить ImageView, чтобы охватить через 3x3 клетки

gridLayout_mazeLayout = (GridLayout) rootView.findViewById(R.id.gridLayout_mazeLayout); 
    ImageView imageView_robot = new ImageView(rootView.getContext()); 
    imageView_robot.setBackgroundResource(R.mipmap.imageacross3x3); 

    GridLayout.Spec row = GridLayout.spec(0); 
    GridLayout.Spec col = GridLayout.spec(0); 
    GridLayout.LayoutParams gridLayoutParam = new GridLayout.LayoutParams(row, col); 
    gridLayout_mazeLayout.addView(imageView_robot,gridLayoutParam); 

Но делать это, кажется, ввести новое пространство для ImagineView. То, что я хочу достичь, - это присоединить ImagineView поверх ячейки, вместо того, чтобы добавить его в GridLayout.

ответ

0

Изменение <View> внутри <GridLayout> к <ImageView> с уникальным идентификатором, а затем вы можете получить экземпляр в коде Java с помощью findViewById() или если вы хотите построить динамически просто удалить <View> из <GridLayout> тега и использовать addView() для вставки ImageView в GridLayout.