package com.suan.weclient.adapter;
import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.RelativeLayout;
import com.suan.weclient.R;
import com.suan.weclient.util.text.FaceItem;
import com.suan.weclient.view.Face.FaceGridView;
import java.util.ArrayList;
/**
* Created by lhk on 3/17/14.
*/
public class FaceGridAdapter implements ListAdapter {
private ArrayList<FaceItem> faceItems;
private Context mContext;
private FaceGridView.InputFaceListener inputFaceListener;
private LayoutInflater layoutInflater;
public FaceGridAdapter(Context context, ArrayList<FaceItem> faceItems,FaceGridView.InputFaceListener inputFaceListener) {
layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.inputFaceListener = inputFaceListener;
this.faceItems = faceItems;
this.mContext = context;
}
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
@Override
public void registerDataSetObserver(DataSetObserver observer) {
}
@Override
public void unregisterDataSetObserver(DataSetObserver observer) {
}
@Override
public int getCount() {
return faceItems.size();
}
@Override
public Object getItem(int position) {
return faceItems.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
RelativeLayout itemLayout = (RelativeLayout) layoutInflater.inflate(R.layout.face_item_layout, null);
itemLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
inputFaceListener.onInput(faceItems.get(position).getKey());
}
});
ImageView contentImage = (ImageView) itemLayout.findViewById(R.id.face_item_img);
Drawable drawable = null;
String sourceName = mContext.getPackageName() + ":drawable/"
+ faceItems.get(position).getValue();
int id = mContext.getResources().getIdentifier(sourceName, null, null);
if (id != 0) {
drawable = mContext.getResources().getDrawable(id);
if (drawable != null) {
drawable.setBounds(0, 0, drawable.getIntrinsicWidth(),
drawable.getIntrinsicHeight());
}
}
contentImage.setBackground(drawable);
return itemLayout;
}
@Override
public int getItemViewType(int position) {
return 0;
}
@Override
public int getViewTypeCount() {
return 1;
}
@Override
public boolean isEmpty() {
return false;
}
}