2013-02-26 3 views
2

이미 Android Universal Image Loader를 사용하여 gridview를 구현했지만 모든 사진 아래에 라벨을 지정해야합니다. 이 내 ac_image_grid.xml안드로이드 유니버설 이미지 로더의 이미지 아래에 텍스트가있는 GridView 구현

<?xml version="1.0" encoding="utf-8"?> 
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/gridview" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center" 
android:horizontalSpacing="4dip" 
android:numColumns="3" 
android:stretchMode="columnWidth" 
android:verticalSpacing="4dip" 
android:padding="4dip" /> 

입니다 그리고 이것은 내 item_grid_image.xml입니다 :

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/widget44" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:layout_x="201px" 
android:layout_y="165px" 
android:gravity="center_horizontal" 
> 
<ImageView 
android:id="@+id/image" 
android:layout_width="fill_parent" 
android:layout_height="120dip" 
android:adjustViewBounds="true" 
android:contentDescription="@string/descr_image" 
android:scaleType="centerCrop" /> 
<TextView 
android:id="@+id/icon_text" 
android:typeface="serif" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:gravity="center_horizontal" 
android:textStyle="bold" 
android:lines="2"> 
</TextView> 
</LinearLayout> 

내가이 함수를 구현해야 할 것을 알고,하지만 난 방법을 모르는 :

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     final ImageView imageView; 
     if (convertView == null) { 
      imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageLoader.displayImage(imageUrlsSmall.get(position), imageView, options); 

     return imageView; 
    } 

업데이트 : 마지막으로이 코드를 사용하여 작업했습니다.

public View getView(final int position, View convertView, ViewGroup parent) { 
     View view = convertView; 
     final ViewHolder holder; 
     if (convertView == null) { 
      view = getLayoutInflater().inflate(R.layout.item_grid_image, parent, false); 
      holder = new ViewHolder(); 
      holder.text = (TextView) view.findViewById(R.id.icon_text); 
      holder.image = (ImageView) view.findViewById(R.id.image); 
      view.setTag(holder); 
     } else { 
      holder = (ViewHolder) view.getTag(); 
     } 

     holder.text.setText(album[position].getName()); 

     imageLoader.displayImage(albumsPhoto[position], holder.image, options, animateFirstListener); 

     return view; 
    } 

답변

2

아마도 다음과 같이 될 수 있습니다.

private TextView mInfoView; 

OnCreate() :

mInfoView = (TextView) findViewById(R.id.icon_text); 

getView() :

// after imageLoader.displayImage 
mInfoView.setBackgroundColor(Color.TRANSPARENT); 
mInfoView.setText("Some description"); 
관련 문제