Android8.1 Launcher3 修改PageIndicatorLineCaret为小圆点
16lz
2021-01-26
Android8.1 Launcher3 修改PageIndicatorLineCaret为小圆点
原生Launcher的PageIndicatorLineCaret是横线,而且在手指离开屏幕后会消失。
现在修改为小圆点,不消失,先上图:
直接在原有基础上修改
src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
增加两个变量:
//当前页面indexprivate int mActivePage;//小圆点画笔private Paint mDotPaint;
初始化:
mDotPaint = new Paint();mDotPaint.setAntiAlias(true);
src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java -> onDraw():
@Override protected void onDraw(Canvas canvas) { /* 修改 begin */// if (mTotalScroll == 0 || mNumPagesFloat == 0) {// return;// } // Compute and draw line rect. /*float progress = Utilities.boundToRange(((float) mCurrentScroll) / mTotalScroll, 0f, 1f); int availableWidth = canvas.getWidth(); int lineWidth = (int) (availableWidth / mNumPagesFloat); int lineLeft = (int) (progress * (availableWidth - lineWidth)); int lineRight = lineLeft + lineWidth; canvas.drawRect(lineLeft, canvas.getHeight() - mLineHeight, lineRight, canvas.getHeight(), mLinePaint);*/ int lengh = mNumPages * 20 + (mNumPages - 1) * 30; int x = (getMeasuredWidth() - lengh) / 2; for (int i = 0; i < mNumPages; i++) { if (mActivePage == i) { mDotPaint.setColor(Color.WHITE); } else { mDotPaint.setColor(Color.GRAY); } canvas.drawCircle(x, getMeasuredHeight() / 2, 10, mDotPaint); x += 50; } /* 修改 end */ }
记录当前所在页面index:
@Override public void setActiveMarker(int activePage) { mActivePage = activePage; }
大功告成!!!
更多相关文章
- [原][Android]All WebView methods must be called on the same
- Android避免进入一页面后EditText自动弹出软键盘
- viewpage setOnPageChangeListener 监听的详解
- android rom 修改
- android设置toolbar的menu itemTextView颜色
- Android(安卓)8.1 MTK6739平台客制化修改文档
- Android中ViewPager的简单使用(底部圆点)
- Android(安卓)相对布局中的 代码中修改属性与布局文件的设置不同
- Android默认开机横屏