package com.letv.watchball.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.letv.watchball.R;
public class SwitchView extends LinearLayout {
Context context ;
private Gallery gallery ;
int[] onOff = {R.drawable.settings_switcher_off , R.drawable.settings_switcher_on};
private OnItemSelectedListener listener ;
public SwitchView(Context context) {
super(context);
this.context = context ;
init(context);
}
public SwitchView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context ;
init(context);
}
private void init(Context context){
inflate(context, R.layout.switch_view, this);
findView();
}
private void findView() {
gallery = (Gallery) findViewById(R.id.gallery_on_off);
gallery.setAdapter(new SwitchAdapter(context));
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
position = gallery.getSelectedItemPosition();
if(position == 0){
gallery.setSelection(1);
}else if(position == 1){
gallery.setSelection(0);
}
}
});
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if(listener != null){
listener.onItemSelected(parent,view,position,id);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
public int getSelection(){
return gallery.getSelectedItemPosition();
}
public void setListener(OnItemSelectedListener listener){
this.listener = listener ;
}
public void setSelection(int pos){
if(gallery != null){
gallery.setSelection(pos);
}
}
class SwitchAdapter extends BaseAdapter {
private Context mContext = null;
public SwitchAdapter(Context cxt) {
this.mContext = cxt;
}
@Override
public int getCount() {
return onOff.length;
}
@Override
public Object getItem(int position) {
return onOff[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, final ViewGroup parent) {
final ImageView imageView = new ImageView(mContext);
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
imageView.setImageResource(onOff[position]);
return imageView;
}
}
@Override
protected void dispatchDraw(Canvas canvas) {
// try {
// int vh = getHeight();
// Path clipPath = new Path();
// int w = this.getWidth();
// int h = this.getHeight();
// clipPath.addRoundRect(new RectF(0, 0, w , h), (float)vh*0.25f, (float)vh*0.25f,Path.Direction.CW);
// canvas.clipPath(clipPath);
// } catch (Exception e) {
// Log.d("LHY", "RemoteImageViewRound-onDraw = " + e.toString());
// }
// canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG));
super.dispatchDraw(canvas);
}
}