쇼 이미지에 을 사용합니다. GridView
입니다. 내 이미지를 드로어 블 폴더에 넣습니다. 하지만 스크롤 할 때 매우 어둡습니다. 나는 PauseOnScrollListener
시도하지만 여전히 스크롤에 느린 ...안드로이드 - GridView에서 스크롤 할 때 유니버설 이미지 로더가 뒤떨어 짐
이 내의 GridView 조각과 어댑터입니다 :
public class SubCategoryFragment extends Fragment {
TypedArray imgIDs;
int[] imgResIds;
String subCatTitle[];
DisplayImageOptions options;
ImageLoaderConfiguration config;
ImageLoader imageLoader;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
options = new DisplayImageOptions.Builder()
.cacheInMemory(true)
.cacheOnDisk(true)
.bitmapConfig(Bitmap.Config.RGB_565)
.imageScaleType(ImageScaleType.EXACTLY)
.build();
config = new ImageLoaderConfiguration.Builder(getActivity())
.memoryCacheSize(41943040)
.discCacheSize(104857600)
.threadPoolSize(5)
.build();
imageLoader = ImageLoader.getInstance();
imageLoader.init(config);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.sub_category_fragment, container, false);
ImageLoader.getInstance().init(config);
//if(getArguments().getString("cat") == "choose"){
subCatTitle = getResources().getStringArray(R.array.choose);
imgIDs = getResources().obtainTypedArray(R.array.chooseImgIDs);
//}
imgResIds = new int[imgIDs.length()];
for(int i = 0; i < imgIDs.length(); i++)
imgResIds[i] = imgIDs.getResourceId(i, -1);
imgIDs.recycle();
((GridView) view.findViewById(R.id.sub_category_gridview)).setOnScrollListener(new PauseOnScrollListener(imageLoader, false, true));
((GridView) view.findViewById(R.id.sub_category_gridview)).setAdapter(new CustomGrid(getActivity()));
return view;
}
public class CustomGrid extends BaseAdapter{
private Context mContext;
public CustomGrid(Context c) {
mContext = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return subCatTitle.length;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder viewHolder;
if(convertView == null){
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.sub_category_view, parent, false);
viewHolder = new ViewHolder();
viewHolder.subCatView = (LinearLayout) convertView.findViewById(R.id.sub_category_view);
viewHolder.subCatImg = (ImageView) convertView.findViewById(R.id.sub_category_img);
viewHolder.subCatTitle = (TextView) convertView.findViewById(R.id.sub_category_name);
convertView.setTag(viewHolder);
}
else{
//imgIDs.recycle();
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.subCatTitle.setText(subCatTitle[position]);
imageLoader.displayImage("drawable://"+imgResIds[position], viewHolder.subCatImg, options);
return convertView;
}
}
public class ViewHolder{
public TextView subCatTitle;
public ImageView subCatImg;
public LinearLayout subCatView;
}
}
그리고 이것은 내의 GridView 항목 레이아웃입니다 : 문제가
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:id="@+id/sub_category_view">
<ir.motorel.carbuyinstruduction.SquareLinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/button">
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxWidth="250dp"
android:maxHeight="250dp"
android:src="@drawable/picture1"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_margin="10dp"
android:id="@+id/sub_category_img"/>
</ir.motorel.carbuyinstruduction.SquareLinearLayout>
<TextView
android:layout_marginTop="5dp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello"
android:gravity="center"
android:textColor="#C36518"
android:id="@+id/sub_category_name"/>
</LinearLayout>
무엇 ?
'ImageView.setImageResource (...) '문제는 그것을 사용할 때 메모리 예외가 발생합니다! – K2evil
이미지의 크기는 얼마입니까? –
150 * 150 픽셀 – K2evil