国产探花免费观看_亚洲丰满少妇自慰呻吟_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效果,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 台湾省| 霍山县| 泗水县| 彩票| 迭部县| 偏关县| 北辰区| 大余县| 堆龙德庆县| 平原县| 禄丰县| 西宁市| 江北区| 阳泉市| 鄂州市| 海盐县| 徐水县| 安岳县| 吉林省| 鄂伦春自治旗| 芷江| 永靖县| 鸡西市| 芦溪县| 浙江省| 拉萨市| 镇原县| 宜丰县| 蓝山县| 昭苏县| 太仆寺旗| 仁化县| 鄂尔多斯市| 衡阳县| 延长县| 延寿县| 伽师县| 灵山县| 枞阳县| 汨罗市| 井研县|