2014-11-10 1 views
-1

getView 메소드 내부에서 일부 ImageView를 생성해야합니다.addView 내부의 getView 마지막으로 삽입 된 뷰 만 표시

나는이 레이아웃 내부를 생성합니다

<LinearLayout 
     android:id="@+id/layoutBaby" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:orientation="horizontal" > 

그래서 이미지가 추가됩니다 수평 자동으로합니다 (orientation 때문에).

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    for(int childId : dbHelper.getChildrenIdBySchedule(getItem(position).getId())) 
    { 
     ImageView imgBaby = new ImageView(context); 
     imgBaby.setLayoutParams(params); 

     String image = dbHelper.getChildImage(childId); 
     File imgFile = new File(image); 

     if(imgFile.exists()) 
     { 
      Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
      imgBaby.setImageBitmap(myBitmap); 
     } 
     else 
     { 
      imgBaby.setImageResource(R.drawable.ic_launcher); 
     } 
     holder.layoutBaby.addView(imgBaby); 
    } 

내가 그 전화를 여러 번가 (dbHelper.getChildrenIdBySchedule 기준) 확인하기 위해 위의 코드 디버깅을 가지고

이 내가 그 이미지를 추가하는 방법입니다.

이 코드는 프로그래머가 단 1 ImageView 그러나 1 개 이상 ImageView가있는 경우에만 최신ImageView이 vissible입니다 추가 워킹 경우.

예를 들어, 2가 ImageViews 인 경우 두 코드 모두 추가되었지만 (코드를 디버그 함) 두 번째 코드는 ImageView입니다.

언제든지 물어보고 언제든지 고맙습니다.

+0

이유는 런타임시 ImgView를 추가 ?? 목록에 와우를 디자인 할 수 없습니까? –

+0

@SweetWisher 각 행의 이미지 양을 지정할 수 없습니다 ... –

+0

@SweetWisher ツ 각 행의 총 이미지 뷰가 다를 것입니다. –

답변

1

당신은 HorizontalScrollView 함께 관리 할 수 ​​있습니다

public View getView(int position, View view, ViewGroup viewgroup) { 
     ViewHolder holder = new ViewHolder(); // our view holder of the row 
     if (view == null) { 

      HorizontalScrollView hr = new HorizontalScrollView(con); 
      LinearLayout layout = new LinearLayout(con); 
      layout.setLayoutParams(new LinearLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 



      for(int childId : dbHelper.getChildrenIdBySchedule(getItem(position).getId())) 
       holder.image = new ImageView(con); 
       layout.addView(holder.image); 
       String image = dbHelper.getChildImage(childId); 
       File imgFile = new File(image); 

       if(imgFile.exists()) 
       { 
        Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath()); 
        holder.image.setImageBitmap(myBitmap); 
       } 
       else 
        holder.image.setImageResource(R.drawable.ic_launcher); 
      } 
      hr.addView(layout); 
      view = hr; 

      view.setTag(holder); 

     } 
     holder = (ViewHolder) view.getTag(); 

     return view; 

    } 

For more info, refer this

+0

고마워, 이것을 시도합니다 –

관련 문제