// Path: src/com/ly/hi/im/util/PixelUtil.java
// public class PixelUtil {
// 
//     /**
//      * The context.
//      */
//     private static Context mContext = CustomApplication.getInstance();
// 
//     /**
//      * dp×ª px.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int dp2px(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().densityDpi;
//         return (int) (value * (scale / 160) + 0.5f);
//     }
// 
//     /**
//      * dp×ª px.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int dp2px(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().densityDpi;
//         return (int) (value * (scale / 160) + 0.5f);
//     }
// 
//     /**
//      * px×ªdp.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int px2dp(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().densityDpi;
//         return (int) ((value * 160) / scale + 0.5f);
//     }
// 
//     /**
//      * px×ªdp.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int px2dp(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().densityDpi;
//         return (int) ((value * 160) / scale + 0.5f);
//     }
// 
//     /**
//      * sp×ªpx.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int sp2px(float value) {
//         Resources r;
//         if (mContext == null) {
//             r = Resources.getSystem();
//         } else {
//             r = mContext.getResources();
//         }
//         float spvalue = value * r.getDisplayMetrics().scaledDensity;
//         return (int) (spvalue + 0.5f);
//     }
// 
//     /**
//      * sp×ªpx.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int sp2px(float value, Context context) {
//         Resources r;
//         if (context == null) {
//             r = Resources.getSystem();
//         } else {
//             r = context.getResources();
//         }
//         float spvalue = value * r.getDisplayMetrics().scaledDensity;
//         return (int) (spvalue + 0.5f);
//     }
// 
//     /**
//      * px×ªsp.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int px2sp(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().scaledDensity;
//         return (int) (value / scale + 0.5f);
//     }
// 
//     /**
//      * px×ªsp.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int px2sp(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().scaledDensity;
//         return (int) (value / scale + 0.5f);
//     }
// 
// }


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import com.ly.hi.R;
import com.ly.hi.im.util.PixelUtil;
package com.ly.hi.im.view;



/** Í¨Ñ¶Â¼ÓÒ²à¿ìËÙ¹ö¶¯À¸
   * @ClassName: MyLetterView
  * @Description: TODO
  * @author smile
  * @date 2014-6-7 ÏÂÎç1:20:33
  */
public class MyLetterView extends View {
	// ´¥ÃþÊÂ¼þ
	private OnTouchingLetterChangedListener onTouchingLetterChangedListener;
	// 26¸ö×ÖÄ¸
	public static String[] b = { "A", "B", "C", "D", "E", "F", "G", "H", "I",
			"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
			"W", "X", "Y", "Z", "#" };
	private int choose = -1;// Ñ¡ÖÐ
	private Paint paint = new Paint();

	private TextView mTextDialog;

	public void setTextView(TextView mTextDialog) {
		this.mTextDialog = mTextDialog;
	}

	public MyLetterView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public MyLetterView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyLetterView(Context context) {
		super(context);
	}

	/**
	 * ÖØÐ´Õâ¸ö·½·¨
	 */
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		// »ñÈ¡½¹µã¸Ä±ä±³¾°ÑÕÉ«.
		int height = getHeight();// »ñÈ¡¶ÔÓ¦¸ß¶È
		int width = getWidth(); // »ñÈ¡¶ÔÓ¦¿í¶È
		int singleHeight = height / b.length;// »ñÈ¡Ã¿Ò»¸ö×ÖÄ¸µÄ¸ß¶È

		for (int i = 0; i < b.length; i++) {
			paint.setColor(getResources().getColor(R.color.color_bottom_text_normal));
			paint.setTypeface(Typeface.DEFAULT_BOLD);
			paint.setAntiAlias(true);
// Path: src/com/ly/hi/im/util/PixelUtil.java
// public class PixelUtil {
// 
//     /**
//      * The context.
//      */
//     private static Context mContext = CustomApplication.getInstance();
// 
//     /**
//      * dp×ª px.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int dp2px(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().densityDpi;
//         return (int) (value * (scale / 160) + 0.5f);
//     }
// 
//     /**
//      * dp×ª px.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int dp2px(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().densityDpi;
//         return (int) (value * (scale / 160) + 0.5f);
//     }
// 
//     /**
//      * px×ªdp.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int px2dp(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().densityDpi;
//         return (int) ((value * 160) / scale + 0.5f);
//     }
// 
//     /**
//      * px×ªdp.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int px2dp(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().densityDpi;
//         return (int) ((value * 160) / scale + 0.5f);
//     }
// 
//     /**
//      * sp×ªpx.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int sp2px(float value) {
//         Resources r;
//         if (mContext == null) {
//             r = Resources.getSystem();
//         } else {
//             r = mContext.getResources();
//         }
//         float spvalue = value * r.getDisplayMetrics().scaledDensity;
//         return (int) (spvalue + 0.5f);
//     }
// 
//     /**
//      * sp×ªpx.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int sp2px(float value, Context context) {
//         Resources r;
//         if (context == null) {
//             r = Resources.getSystem();
//         } else {
//             r = context.getResources();
//         }
//         float spvalue = value * r.getDisplayMetrics().scaledDensity;
//         return (int) (spvalue + 0.5f);
//     }
// 
//     /**
//      * px×ªsp.
//      *
//      * @param value the value
//      * @return the int
//      */
//     public static int px2sp(float value) {
//         final float scale = mContext.getResources().getDisplayMetrics().scaledDensity;
//         return (int) (value / scale + 0.5f);
//     }
// 
//     /**
//      * px×ªsp.
//      *
//      * @param value   the value
//      * @param context the context
//      * @return the int
//      */
//     public static int px2sp(float value, Context context) {
//         final float scale = context.getResources().getDisplayMetrics().scaledDensity;
//         return (int) (value / scale + 0.5f);
//     }
// 
// }


// Path: src/com/ly/hi/im/view/MyLetterView.java
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.drawable.ColorDrawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
import com.ly.hi.R;
import com.ly.hi.im.util.PixelUtil;

package com.ly.hi.im.view;



/** Í¨Ñ¶Â¼ÓÒ²à¿ìËÙ¹ö¶¯À¸
   * @ClassName: MyLetterView
  * @Description: TODO
  * @author smile
  * @date 2014-6-7 ÏÂÎç1:20:33
  */
public class MyLetterView extends View {
	// ´¥ÃþÊÂ¼þ
	private OnTouchingLetterChangedListener onTouchingLetterChangedListener;
	// 26¸ö×ÖÄ¸
	public static String[] b = { "A", "B", "C", "D", "E", "F", "G", "H", "I",
			"J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
			"W", "X", "Y", "Z", "#" };
	private int choose = -1;// Ñ¡ÖÐ
	private Paint paint = new Paint();

	private TextView mTextDialog;

	public void setTextView(TextView mTextDialog) {
		this.mTextDialog = mTextDialog;
	}

	public MyLetterView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
	}

	public MyLetterView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyLetterView(Context context) {
		super(context);
	}

	/**
	 * ÖØÐ´Õâ¸ö·½·¨
	 */
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		// »ñÈ¡½¹µã¸Ä±ä±³¾°ÑÕÉ«.
		int height = getHeight();// »ñÈ¡¶ÔÓ¦¸ß¶È
		int width = getWidth(); // »ñÈ¡¶ÔÓ¦¿í¶È
		int singleHeight = height / b.length;// »ñÈ¡Ã¿Ò»¸ö×ÖÄ¸µÄ¸ß¶È

		for (int i = 0; i < b.length; i++) {
			paint.setColor(getResources().getColor(R.color.color_bottom_text_normal));
			paint.setTypeface(Typeface.DEFAULT_BOLD);
			paint.setAntiAlias(true);
			paint.setTextSize(PixelUtil.sp2px(12));