나는 벽지 응용 프로그램을 개발하려고합니다. 응용 프로그램이 시작되면 activity는 gridView의 범주 (textView의 이미지 및 해당 이름)를 표시합니다. 카테고리를 선택하면 하위 카테고리로 이동합니다. 하위 카테고리 활동에서는 textVew에 해당 이름이있는 하위 카테고리 이미지도 표시됩니다. 문제가 하위 카테고리 활동 이미지에로드되지 않습니다. 때로는 이미지를로드합니다. 다시 버튼을 누른 다음 해당 하위 카테고리를 다시 선택하면 세 가지 모드 이미지가로드됩니다. 뒤로 버튼을 누르고 하위 카테고리보다 선택하면 다른 세 개의 이미지 (현재 총 10 개의 이미지)가로드됩니다. 이미지가 디스크에 올바르게 캐시됩니다.Android-Universal-Image-Loader :: GridView에 이미지로드
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View rowView;
final ViewHolder viewHolder = new ViewHolder();
if (convertView == null) {
rowView = getLayoutInflater().inflate(
R.layout.item_sub_category_grid, null);
viewHolder.imageView = (ImageView) rowView
.findViewById(R.id.image_item_sub_category);
viewHolder.textView = (TextView) rowView
.findViewById(R.id.text_item_sub_cat_desc);
rowView.setTag(viewHolder);
} else {
rowView = (View) convertView;
}
ViewHolder holder = (ViewHolder) rowView.getTag();
holder.textView.setText(wpSubCategories.get(position)
.getSubCategoryName());
imageLoader.displayImage(imageUrls[position], viewHolder.imageView,
options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted() {
showLoading();
}
@Override
public void onLoadingComplete(Bitmap loadedImage) {
Animation anim = AnimationUtils.loadAnimation(
SubCategoryGridActivity.this,
R.anim.fade_in);
viewHolder.imageView.setAnimation(anim);
anim.start();
}
});
return rowView;
}
}
내 그리드 레이아웃 : sub_category_grid.xml :
여기cacheDir = new File(Environment.getExternalStorageDirectory(),
"peakwallpapers/cache"); // --
// Create configuration for ImageLoader
config = new ImageLoaderConfiguration.Builder(this).enableLogging()
.discCache(new UnlimitedDiscCache(cacheDir))
.memoryCache(new UsingFreqLimitedMemoryCache(2000000))
.denyCacheImageMultipleSizesInMemory().threadPoolSize(10)
.threadPriority(Thread.MIN_PRIORITY + 2)
.defaultDisplayImageOptions(DisplayImageOptions.createSimple())
.build(); // --
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.stub_image)
.showImageForEmptyUri(R.drawable.image_for_empty_url)
.cacheInMemory().cacheOnDisc().build();
imageLoader.init(config);
가의 getView() methood입니다 :
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview_sub_category"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:horizontalSpacing="4dip"
android:numColumns="2"
android:verticalSpacing="4dip" />
그리드의 내 항목 : 여기 내 구성입니다 item_sub_category_grid .xml :
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame_l_item_sub_category_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:background="@drawable/textlines" >
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/image_item_sub_category"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:contentDescription="@string/descr_image"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/text_item_sub_cat_desc"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/cat_bg"
android:gravity="center_horizontal"
android:text="TextView"
android:textColorHighlight="#656565"
android:typeface="monospace" >
</TextView>
</FrameLayout>
N.B : LogCat에 오류가 표시되지 않습니다.
ImageLoader.stop() 호출을 중지했습니다. 작동합니다. – ratulalahy
답변을 추가했습니다. – NOSTRA