fake gallery with gridView
public class ServiceFragment
extends Fragment
{
private String TAG = "ServiceFragment";//for debug only
private Integer TypeMerchant = 1;// item type ,merchant
private Integer TypeProduct = 0;//item type ,product
private ArrayList<HashMap<String, Object>> date;
private ArrayList<HashMap<String, Object>> originalContent;
private MyAdapter adapter;
static class ViewHolder {
TextView name;
TextView address_description;
TextView telephone;
ImageView image;
int itemType; // 1 for merchant while 0 for product
}
private GridView mGridView;
private HorizontalScrollView mScrollView;
private View serviceView;
/**
* gridview 單元格所顯示內容的寬度
*/
private int cWidth = 260;
/**
* gridview 單元格間的間距
*/
private int hSpacing = 10;
private int mWidthPixels;
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
}
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState )
{
super.onCreateView( inflater, container, savedInstanceState );
final View view = inflater.inflate( R.layout.fragment_service, container, false );
serviceView = view;
mWidthPixels = getResources().getDisplayMetrics().widthPixels;
findView();
setValue();
setListener();
return view;
}
private void findView() {
mGridView = (GridView) serviceView.findViewById(R.id.mGridView);
mScrollView = (HorizontalScrollView) serviceView.findViewById(R.id.mScrollView);
mScrollView.setHorizontalScrollBarEnabled(false);//去除滾動條
}
private void setValue() {
MAdapter mAdapter = new MAdapter(getActivity());
mGridView.setAdapter(mAdapter);
// Log.d(TAG,"num---->"+mAdapter.getCount());
// Log.d(TAG,"Width---->"+mAdapter.getCount() * (cWidth + hSpacing));
LayoutParams params = new LayoutParams(mAdapter.getCount() * (cWidth + hSpacing),
LayoutParams.WRAP_CONTENT);
mGridView.setLayoutParams(params);
mGridView.setColumnWidth(cWidth);
mGridView.setHorizontalSpacing(hSpacing);
mGridView.setStretchMode(GridView.NO_STRETCH);
mGridView.setNumColumns(mAdapter.getCount());
}
private void setListener() {
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
int x = (int) (view.getLeft()+view.getWidth()/2.0-mWidthPixels/2.0);
mScrollView.smoothScrollTo(x, 0);
}
});
}
class MAdapter extends BaseAdapter {
Context mContext;
LayoutInflater mInflater;
public MAdapter(Context c) {
mContext = c;
mInflater = LayoutInflater.from(mContext);
date = getDate();
}
@Override
public int getCount() {
return date.size();
}
@Override
public Object getItem(int arg0) {
return date.get( arg0 );
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int position, View contentView, ViewGroup arg2) {
ViewHolder holder;
if (contentView == null) {
holder = new ViewHolder();
contentView = mInflater.inflate(R.layout.fragment_service_gallery_item, null);
holder.image = (ImageView) contentView.findViewById(R.id.imageViewLogo);
holder.name = (TextView) contentView.findViewById(R.id.textViewPriceProduct);
holder.address_description = (TextView) contentView.findViewById(R.id.textViewPriceAdditionalProduct);
holder.telephone = (TextView) contentView.findViewById(R.id.textViewTitleProduct);
//contentView.setTag(holder);
} else {
holder = (ViewHolder) contentView.getTag();
}
holder.name.setText( date.get( position ).get( "name" ).toString() );
holder.address_description.setText( date.get( position ).get( "address" ).toString() );
holder.telephone.setText( date.get( position ).get( "telephone" ).toString() );
holder.image.setImageResource((Integer) date.get( position ).get( "image" ));
holder.itemType = (Integer) date.get( position ).get( "type" );
contentView.setTag(holder);
return contentView;
}
}
extends Fragment
{
private String TAG = "ServiceFragment";//for debug only
private Integer TypeMerchant = 1;// item type ,merchant
private Integer TypeProduct = 0;//item type ,product
private ArrayList<HashMap<String, Object>> date;
private ArrayList<HashMap<String, Object>> originalContent;
private MyAdapter adapter;
static class ViewHolder {
TextView name;
TextView address_description;
TextView telephone;
ImageView image;
int itemType; // 1 for merchant while 0 for product
}
private GridView mGridView;
private HorizontalScrollView mScrollView;
private View serviceView;
/**
* gridview 單元格所顯示內容的寬度
*/
private int cWidth = 260;
/**
* gridview 單元格間的間距
*/
private int hSpacing = 10;
private int mWidthPixels;
@Override
public void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
}
@Override
public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState )
{
super.onCreateView( inflater, container, savedInstanceState );
final View view = inflater.inflate( R.layout.fragment_service, container, false );
serviceView = view;
mWidthPixels = getResources().getDisplayMetrics().widthPixels;
findView();
setValue();
setListener();
return view;
}
private void findView() {
mGridView = (GridView) serviceView.findViewById(R.id.mGridView);
mScrollView = (HorizontalScrollView) serviceView.findViewById(R.id.mScrollView);
mScrollView.setHorizontalScrollBarEnabled(false);//去除滾動條
}
private void setValue() {
MAdapter mAdapter = new MAdapter(getActivity());
mGridView.setAdapter(mAdapter);
// Log.d(TAG,"num---->"+mAdapter.getCount());
// Log.d(TAG,"Width---->"+mAdapter.getCount() * (cWidth + hSpacing));
LayoutParams params = new LayoutParams(mAdapter.getCount() * (cWidth + hSpacing),
LayoutParams.WRAP_CONTENT);
mGridView.setLayoutParams(params);
mGridView.setColumnWidth(cWidth);
mGridView.setHorizontalSpacing(hSpacing);
mGridView.setStretchMode(GridView.NO_STRETCH);
mGridView.setNumColumns(mAdapter.getCount());
}
private void setListener() {
mGridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
int x = (int) (view.getLeft()+view.getWidth()/2.0-mWidthPixels/2.0);
mScrollView.smoothScrollTo(x, 0);
}
});
}
class MAdapter extends BaseAdapter {
Context mContext;
LayoutInflater mInflater;
public MAdapter(Context c) {
mContext = c;
mInflater = LayoutInflater.from(mContext);
date = getDate();
}
@Override
public int getCount() {
return date.size();
}
@Override
public Object getItem(int arg0) {
return date.get( arg0 );
}
@Override
public long getItemId(int arg0) {
return arg0;
}
@Override
public View getView(int position, View contentView, ViewGroup arg2) {
ViewHolder holder;
if (contentView == null) {
holder = new ViewHolder();
contentView = mInflater.inflate(R.layout.fragment_service_gallery_item, null);
holder.image = (ImageView) contentView.findViewById(R.id.imageViewLogo);
holder.name = (TextView) contentView.findViewById(R.id.textViewPriceProduct);
holder.address_description = (TextView) contentView.findViewById(R.id.textViewPriceAdditionalProduct);
holder.telephone = (TextView) contentView.findViewById(R.id.textViewTitleProduct);
//contentView.setTag(holder);
} else {
holder = (ViewHolder) contentView.getTag();
}
holder.name.setText( date.get( position ).get( "name" ).toString() );
holder.address_description.setText( date.get( position ).get( "address" ).toString() );
holder.telephone.setText( date.get( position ).get( "telephone" ).toString() );
holder.image.setImageResource((Integer) date.get( position ).get( "image" ));
holder.itemType = (Integer) date.get( position ).get( "type" );
contentView.setTag(holder);
return contentView;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.