-1
내 프로젝트 중 하나에 UIL을 사용하고 싶었 기 때문에이 프로토 타입 프로젝트를 통해 라이브러리 작동 방식을 확인했습니다. 샘플 프로젝트에 따라 https://github.com/nostra13/Android-Universal-Image-Loader에서 제작했습니다. 하지만 내가 proj를 실행하면 이미지가 표시되지 않고 logcat에도 오류가 표시되지 않습니다. 제목 표시 줄에 프로젝트 이름이 담긴 빈 화면이 나타납니다. 누구든지 내 코드에서 무엇이 잘못 됐는지 말해 줄 수 있습니까? 도움은 감사하게 받아 들여집니다.GridView가 유니버설 이미지 로더를 사용하여로드하지 않습니다.
public class GridGallery extends Activity {
DisplayImageOptions options;
GridView listView;
String[] imageUrls = new String[] { "drawable://" + R.drawable.img1,
"drawable://" + R.drawable.img2, "drawable://" + R.drawable.img3,
"drawable://" + R.drawable.img4, "drawable://" + R.drawable.img5,
"drawable://" + R.drawable.img6, "drawable://" + R.drawable.img7,
"drawable://" + R.drawable.img8, "drawable://" + R.drawable.img9,
"drawable://" + R.drawable.img10, "drawable://" + R.drawable.img11 };
public static final int INDEX = 1;
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
this).build();
ImageLoader.getInstance().init(config);
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.ic_stub)
.showImageForEmptyUri(R.drawable.ic_empty)
.showImageOnFail(R.drawable.ic_error).cacheInMemory(true)
.cacheOnDisk(true).considerExifParams(true)
.bitmapConfig(Bitmap.Config.RGB_565).build();
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.image_grid, container, false);
listView = (GridView) rootView.findViewById(R.id.grid);
((GridView) listView).setAdapter(new ImageAdapter());
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
startImagePagerActivity(position);
}
});
return rootView;
}
protected void startImagePagerActivity(int position) {
// Intent intent = new Intent(getActivity(), SimpleImageActivity.class);
// intent.putExtra(Constants.Extra.FRAGMENT_INDEX,
// ImagePagerFragment.INDEX);
// intent.putExtra(Constants.Extra.IMAGE_POSITION, position);
// startActivity(intent);
}
public class ImageAdapter extends BaseAdapter {
private LayoutInflater inflater;
ImageAdapter() {
inflater = LayoutInflater.from(getApplicationContext());
}
@Override
public int getCount() {
return imageUrls.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = inflater
.inflate(R.layout.image_grid_item, parent, false);
holder = new ViewHolder();
assert view != null;
holder.imageView = (ImageView) view.findViewById(R.id.image);
holder.progressBar = (ProgressBar) view
.findViewById(R.id.progress);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
ImageLoader.getInstance().displayImage(imageUrls[position],
holder.imageView, options,
new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
holder.progressBar.setProgress(0);
holder.progressBar.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
holder.progressBar.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
holder.progressBar.setVisibility(View.GONE);
}
}, new ImageLoadingProgressListener() {
@Override
public void onProgressUpdate(String imageUri,
View view, int current, int total) {
holder.progressBar.setProgress(Math.round(100.0f
* current/total));
}
});
return view;
}
}
static class ViewHolder {
ImageView imageView;
ProgressBar progressBar;
}
}
매니페스트
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.imagetester"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".GridGallery"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
당신은 샘플 items.i에 샘플 proj와 동일한 코드를 비교해 주시겠습니까? –
@ClintonDsouza 다시 확인해야하며 "imageUrls"는 사용되지 않았으며 사실은 어댑터입니다. 왜냐하면 당신은 그 안에 아무것도 넣지 않으므로 목록보기는 비어 있습니다. –