package com.ihateflyingbugs.kidsm.gallery; import java.util.ArrayList; import com.ihateflyingbugs.kidsm.ImageLoader; import com.ihateflyingbugs.kidsm.R; import android.app.Activity; import android.content.Context; import android.util.DisplayMetrics; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; import android.widget.GridView; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class GalleryAdapter extends BaseAdapter { int type; ArrayList<Album> albumList; Context contxt; int sizeOfView; public ImageLoader imageLoader; public GalleryAdapter(ArrayList<Album> albumList, Context context, int sizeOfView) { this.albumList = albumList; this.contxt=context; this.sizeOfView = sizeOfView; this.imageLoader = new ImageLoader(context, R.drawable.photo_album_default); } @Override public int getCount() { return albumList.size(); } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return null; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { // create a new LayoutInflater LayoutInflater inflater = (LayoutInflater) contxt .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View gridView; gridView = null; convertView = null;// avoids recycling of grid view if (convertView == null) { gridView = new View(contxt); // inflating grid view item switch(albumList.get(position).type) { case NEW: gridView = inflater.inflate(R.layout.gallery_album_onebutton, null); break; case NORMAL: gridView = inflater.inflate(R.layout.gallery_album_withsettings, null); View btn = gridView.findViewById(R.id.gallery_settings); break; case SCRAP: gridView = inflater.inflate(R.layout.gallery_album_withoutsettings, null); break; } gridView.setLayoutParams(new AbsListView.LayoutParams(sizeOfView, sizeOfView)); } // set value into textview int marginValue = 0;//sizeOfView/32; FrameLayout nameFrame = (FrameLayout) gridView.findViewById(R.id.gallery_albumnameframe); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(sizeOfView-2*marginValue, sizeOfView/4, Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM); params.setMargins(marginValue, 0, marginValue, marginValue/2); nameFrame.setLayoutParams(params); // TODO LIST : �� ����ø ������ ���ã�� ������ ...üĿ�� �ɷ����� �ȵ�. TextView textView = (TextView) gridView.findViewById(R.id.gallery_albumname); switch(albumList.get(position).type) { case NEW: textView.setText(albumList.get(position).album_name); break; case SCRAP: textView.setText(albumList.get(position).album_name + " (" + albumList.get(position).photoList.size() + ")"); if(albumList.get(position).photoList.size() != 0) { ImageView image = (ImageView) gridView.findViewById(R.id.gallery_albumimage); //imageLoader.DisplayImage(((Activity)contxt).getString(R.string.image_url)+albumList.get(position).photoList.get(0).photo_path, image); // String[] tokens = albumList.get(position).photoList.get(0).photo_path.split("/"); // String uri = ""; // for( int i = 0; i < tokens.length; i++ ) { // uri += tokens[i]; // if( i == 0 ) // uri += "/"; // } imageLoader.DisplayImage(((Activity)contxt).getString(R.string.image_url)+albumList.get(position).photoList.get(albumList.get(position).photoList.size()-1).photo_path, image); } break; case NORMAL: if( albumList.get(position).album_type.equals("D") == false && albumList.get(position).needSetting ) gridView.findViewById(R.id.gallery_settings).setVisibility(View.VISIBLE); else gridView.findViewById(R.id.gallery_settings).setVisibility(View.INVISIBLE); String albumName = albumList.get(position).album_name + " (" + albumList.get(position).photoList.size() + ")"; int maxLength = 20; if(albumName.length() <= maxLength) textView.setText(albumName); else { String suffix = "... (" + albumList.get(position).photoList.size() + ")"; String compressedName = albumName.substring(0, maxLength-1-suffix.length()) + suffix; // String[] tokens = albumName.split(" "); // for( int i = 0; i < tokens.length-1; i++ ) { // if(compressedName.length() + tokens[i].length() + tokens[tokens.length-1].length() <= 18) // compressedName += tokens[i] +" "; // else { // compressedName += "... " + tokens[tokens.length-1]; // break; // } // } textView.setText(compressedName); } gridView.findViewById(R.id.gallery_albumframe).setTag(albumList.get(position).album_srl); gridView.findViewById(R.id.gallery_settings).setTag(albumList.get(position).album_srl); if(albumList.get(position).photoList.size() != 0) { ImageView image = (ImageView) gridView.findViewById(R.id.gallery_albumimage); imageLoader.DisplayImage(((Activity)contxt).getString(R.string.image_url)+albumList.get(position).photoList.get(albumList.get(position).photoList.size()-1).photo_path, image); // String[] tokens = albumList.get(position).photoList.get(albumList.get(position).photoList.size()-1).photo_path.split("/"); // String uri = ""; // for( int i = 0; i < tokens.length; i++ ) { // uri += tokens[i]; // if( i == 0 ) // uri += "/"; // } // imageLoader.DisplayImage(((Activity)contxt).getString(R.string.image_url)+uri, image); } break; } return gridView; } }