안드로이드 마켓과 같은 gridview를 만들고 싶습니다. 인터넷에있는 데이터베이스의 이미지로 채우고 싶습니다. 그것은 4.0까지 2.2를 실행하고 싶기 때문에 androidv4.support와 함께 작업해야합니다.방법 : 조각 내에서 gridview를 사용 하시겠습니까?
누군가는 4.0 이전 버전에서 그리드 뷰를 만들 수는 없다고 말 했나요?
그러나 setListAdapter()
을 사용하면 작동하지만 목록보기처럼 한 줄에 하나의 이미지 만 표시됩니다. gridview.setAdapter()
으로 변경하면 더 이상 작동하지 않습니다.
이는 ListFragment 클래스는 다음과 같습니다 :
public static class ArrayListFragment extends ListFragment implements OnScrollListener{
ImageAdapter adapter = new ImageAdapter();
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
LayoutInflater gridInflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = gridInflater.inflate(R.layout.imagelist, null);
GridView gridView = (GridView) v.findViewById(R.id.list);
ImageDownloader.Mode mode = ImageDownloader.Mode.CORRECT;
// ImageAdapter imageAdapter = new ImageAdapter();
adapter.getImageDownloader().setMode(mode);
setListAdapter(adapter);
// gridView.setAdapter(adapter);
getListView().setOnScrollListener(this);
}
이것은 ImageAdapter 클래스 : 누군가 샘플이있는 경우
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private final ImageDownloader imageDownloader = new ImageDownloader();
public static int count = 10;
private final String[] URLS = {
"http://lh5.ggpht.com/_mrb7w4gF8Ds/TCpetKSqM1I/AAAAAAAAD2c/Qef6Gsqf12Y/s144-c/_DSC4374%20copy.jpg",
"http://lh5.ggpht.com/_Z6tbBnE-swM/TB0CryLkiLI/AAAAAAAAVSo/n6B78hsDUz4/s144-c/_DSC3454.jpg",
"http://lh3.ggpht.com/_GEnSvSHk4iE/TDSfmyCfn0I/AAAAAAAAF8Y/cqmhEoxbwys/s144-c/_MG_3675.jpg",
"http://lh6.ggpht.com/_Nsxc889y6hY/TBp7jfx-cgI/AAAAAAAAHAg/Rr7jX44r2Gc/s144-c/IMGP9775a.jpg",
"http://lh3.ggpht.com/_lLj6go_T1CQ/TCD8PW09KBI/AAAAAAAAQdc/AqmOJ7eg5ig/s144-c/Juvenile%20Gannet%20despute.jpg",
};
public int getCount() {
return count;
}
public String getItem(int position) {
return URLS[position];
}
public long getItemId(int position) {
return URLS[position].hashCode();
}
public View getView(int position, View convertView, ViewGroup parent) {
View v;
if (convertView == null) {
v = LayoutInflater.from(mContext).inflate(R.layout.image_text_view,null);
v.setLayoutParams(new GridView.LayoutParams(200,200));
ImageView imageview = (ImageView)v.findViewById(R.id.image);
imageview.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageview.setPadding(6, 6, 6, 6);
imageDownloader.download(URLS[position], imageview);
}
else {
v = convertView;
}
return v;
}
public ImageDownloader getImageDownloader() {
return imageDownloader;
}
}
그것은 많은 도움이 될 수
여기 내 시도이다. 감사합니다
작동하지만 지금은 이미지로 Gridview를 채우지 않고 getView에서 오류를 찾으려고합니다. – Marckaraujo
@Marckaraujo가 GetView에 대한 참고 사항을 추가했습니다. 문제가 무엇인지는 모르지만 도움이 될 수 있습니다 - URL은 어디서 오는가? – JRaymond
아직 URL이 어디에서 왔는지 보여주기 위해 코드를 업데이트합니다. – Marckaraujo