国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android側邊欄滑動切換的view效果

2019-12-12 03:16:26
字體:
來源:轉載
供稿:網友

廢話不多說了,直接給大家貼代碼了,具體代碼如下所示:

import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.drawable.BitmapDrawable;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;public class SideBar extends View {  private static final int MARGIN_BOTTOM = 2;  private int mItemHeight = 18;  private OnLetterTouchListener mOnLetterTouchListener;  private Paint mPaint;  private float mWidthCenter;  private int backgroundColor = 0x00F0F0F0;  private char[] chars = AppCommon.INDEXER_CHARS;  public interface OnLetterTouchListener {    public abstract void onPressedDown(int index, char ch);    public abstract void onPressedUp(int index, char ch);  }  public SideBar(Context context) {    this(context, null);  }  public SideBar(Context context, AttributeSet attrs) {    this(context, attrs, -1);  }  public SideBar(Context context, AttributeSet attrs, int defStyle) {    super(context, attrs, defStyle);    init();  }  private int startY = 0;//其實位置的y軸坐標  public SideBar setChars(char[] chars) {    this.chars = chars;//   for(int i = 0 ; i < (26 - chars.length) / 2 ; i++){//     startY += i * mItemHeight;//   }    init();    postInvalidate();    return this;  }  private void init() {    mPaint = new Paint();    mPaint.setColor(0xFFCFCFD0);    mPaint.setAntiAlias(true);    mPaint.setFakeBoldText(true);    mPaint.setTextSize(32);    mPaint.setColor(getResources().getColor(R.color.blue));    mPaint.setSubpixelText(true);    mPaint.setTextAlign(Paint.Align.CENTER);    setBackgroundColor(backgroundColor);  }  public boolean onTouchEvent(MotionEvent event) {    super.onTouchEvent(event);    int idx = (int) event.getY() / mItemHeight;    if (idx >= chars.length) {      idx = chars.length - 1;    } else if (idx < 0) {      idx = 0;    }    if (event.getAction() == MotionEvent.ACTION_DOWN || event.getAction() == MotionEvent.ACTION_MOVE) {      setBackgroundResource(R.color.sidebar_select_background);      if (mOnLetterTouchListener != null) {        mOnLetterTouchListener.onPressedDown(idx, chars[idx]);      }    } else if (event.getAction() == MotionEvent.ACTION_UP) {      setBackgroundDrawable(new BitmapDrawable());      setBackgroundColor(backgroundColor);      if (mOnLetterTouchListener != null) {        mOnLetterTouchListener.onPressedUp(idx, chars[idx]);      }    }    return true;  }  @Override  protected void onSizeChanged(int w, int h, int oldw, int oldh) {    mItemHeight = (h - MARGIN_BOTTOM) / 26;    mWidthCenter = getMeasuredWidth() / 2;    super.onSizeChanged(w, h, oldw, oldh);  }  protected void onDraw(Canvas canvas) {    for (int i = 0; i < chars.length; i++) {      canvas.drawText(String.valueOf(chars[i]), mWidthCenter,startY + mItemHeight + (i * mItemHeight), mPaint);    }    super.onDraw(canvas);  }  public void setOnLetterTouchListener(OnLetterTouchListener listener) {    mOnLetterTouchListener = listener;  }}

以上所述是小編給大家介紹的Android側邊欄滑動切換的view效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南召县| 福贡县| 奉节县| 邮箱| 伊金霍洛旗| 临沧市| 冷水江市| 吴堡县| 甘谷县| 高青县| 滕州市| 瓦房店市| 科尔| 拉孜县| 瑞丽市| 渭南市| 安义县| 衡水市| 阜宁县| 特克斯县| 黑水县| 东至县| 铜梁县| 轮台县| 赣州市| 桂平市| 达孜县| 乌恰县| 深圳市| 许昌市| 平昌县| 思南县| 龙川县| 平南县| 开原市| 新和县| 舒城县| 濉溪县| 温州市| 宁海县| 昌乐县|