// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/utils/PixelUtil.java
// public class PixelUtil {
// 
//     /**
//      * The mContext.
//      */
//     private static Context mContext;
// 
//     public static void init(Context context) {
//         mContext = context;
//     }
// 
//     /**
//      * 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 mContext
//      * @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 mContext
//      * @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 mContext
//      * @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 mContext
//      * @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.dreamliner.lib.rvhelper.sample.R;
import com.dreamliner.lib.rvhelper.sample.utils.PixelUtil;
package com.dreamliner.lib.rvhelper.sample.view;




/**
 * @文件名: MyLetterView
 * @功能描述: 通讯录右侧快速滚动栏
 * @Create by chenzj on 2015-12-6 下午8:35:01
 * @email: chenzj@sq580.com
 * @修改记录:
 */
public class LetterView 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 LetterView(Context context) {
        super(context);
    }

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

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

    /**
     * 重写这个方法
     */
    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(Color.parseColor("#9da0a4"));
            paint.setTypeface(Typeface.DEFAULT_BOLD);
            paint.setAntiAlias(true);
// Path: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/utils/PixelUtil.java
// public class PixelUtil {
// 
//     /**
//      * The mContext.
//      */
//     private static Context mContext;
// 
//     public static void init(Context context) {
//         mContext = context;
//     }
// 
//     /**
//      * 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 mContext
//      * @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 mContext
//      * @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 mContext
//      * @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 mContext
//      * @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: demo/src/main/java/com/dreamliner/lib/rvhelper/sample/view/LetterView.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.dreamliner.lib.rvhelper.sample.R;
import com.dreamliner.lib.rvhelper.sample.utils.PixelUtil;

package com.dreamliner.lib.rvhelper.sample.view;




/**
 * @文件名: MyLetterView
 * @功能描述: 通讯录右侧快速滚动栏
 * @Create by chenzj on 2015-12-6 下午8:35:01
 * @email: chenzj@sq580.com
 * @修改记录:
 */
public class LetterView 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 LetterView(Context context) {
        super(context);
    }

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

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

    /**
     * 重写这个方法
     */
    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(Color.parseColor("#9da0a4"));
            paint.setTypeface(Typeface.DEFAULT_BOLD);
            paint.setAntiAlias(true);
            paint.setTextSize(PixelUtil.sp2px(12));