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

首頁 > 學院 > 開發設計 > 正文

一把尺子

2019-11-09 14:35:56
字體:
來源:轉載
供稿:網友
//todo 放效果圖

使用方式:

//偷個懶用的像素 沒用dp <ScrollRuleView android:layout_width="match_parent" android:layout_height="200dp" app:count="100"http://配置最大刻度 app:fatLine="10"http://粗線寬 app:thinLine="8"http://細線寬 app:gap="30"http:// app:length="80" > </com.xiaov.ruleview.ScrollRuleView>

實現思路:

三角形TriangleView和RuleView封裝在一個ScrollRuleView中,供外部直接使用。

1.draw出來刻度線和三角形。 2.增加跟隨手指移動 3.在move里回調value給上邊顯示當前刻度值。

//畫刻度線 PRotected void onDraw(Canvas canvas) { super.onDraw(canvas); startX= (int)(mPaint.measureText("0")/2);//fix view destroy data exit for (int i = 0; i < count+1; i++) { if(i%10==0){ String text = String.valueOf(i); mPaint.setStrokeWidth(fatLine); canvas.drawLine(startX, 0, startX , 100, mPaint);//line height 100 canvas.drawText(text,startX- mPaint.measureText(text)/2,150, mPaint);//from y 150 }else{ mPaint.setStrokeWidth(thinLine); canvas.drawLine(startX, 0, startX ,60, mPaint);//line height 60 } startX = startX + gap; } }//這里用的屬性動畫移動 layout方式回調后 移動失效public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: lastX = x; break; case MotionEvent.ACTION_MOVE: float offsetX = x - lastX;// layout(getLeft() + offsetX, getTop() ,getRight() + offsetX, getBottom());//用layout移動的方式 回調給上層View時 move失效 float translationX = getTranslationX() + offsetX; //限制向右滑動 0 if(translationX>= mOffsetRight && mOffsetRight !=0 ){ translationX= mOffsetRight; } //限制向左滑動 100 if(Math.abs(translationX)>=getMeasuredWidth()- mOffsetRight -mPaint.measureText(count+"")/2-mPaint.measureText("0")/2){ translationX=-getMeasuredWidth()+ mOffsetRight +mPaint.measureText(count+"")/2+mPaint.measureText("0")/2; } setTranslationX(translationX); if(mListener!=null){ mListener.onMoveChange(getTranslationX()); } break; case MotionEvent.ACTION_UP: break; } return true;//畫三角形 @Override protected void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); mPath.moveTo(getMeasuredWidth()/2-length/2,0); mPath.lineTo(getMeasuredWidth()/2+length/2,0); mPath.lineTo(getMeasuredWidth()/2,length); mPath.close(); mPaint.setStyle(Paint.Style.FILL); canvas.drawPath(mPath, mPaint); }

demo地址:https://github.com/androidjiawei/RuleViewDemo


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 将乐县| 即墨市| 平武县| 郴州市| 姚安县| 孝感市| 霍山县| 崇明县| 黄山市| 略阳县| 屏山县| 南乐县| 宝兴县| 邵东县| 天柱县| 武胜县| 临沂市| 新民市| 衡阳县| 额尔古纳市| 哈巴河县| 承德市| 两当县| 怀远县| 高碑店市| 米林县| 怀柔区| 衡东县| 黔南| 牙克石市| 新丰县| 洪雅县| 遂昌县| 静海县| 大厂| 马关县| 平定县| 平阳县| 阳西县| 高要市| 永登县|