我试图用多色的android创建自定义搜索栏.我试过下面的代码
customseekbar.java
@H_404_7@int probarWIDth = getWIDth();int probarHeight = getHeight();int thumboffset = getThumbOffset();int lastproX = 0;int proItemWIDth,proItemRight;for (int i = 0; i < mproItemsList.size(); i++) {proItem proItem = mproItemsList.get(i);Paint proPaint = new Paint();proPaint.setcolor(getResources().getcolor(proItem.color));proItemWIDth = (int) (proItem.proItemPercentage * probarWIDth / 100);proItemRight = lastproX + proItemWIDth;// for last item give right of the pro item to wIDth of the// pro barif (i == mproItemsList.size() - 1 && proItemRight != probarWIDth) { proItemRight = probarWIDth;}Rect proRect = new Rect();proRect.set(lastproX,thumboffset / 2,proItemRight,probarHeight - thumboffset / 2);canvas.drawRect(proRect,proPaint);lastproX = proItemRight;}super.onDraw(canvas);
视图
@H_404_7@我在MainMenuActivity中使用了这个方法.它给我的结果如下.我把这个链接称为https://azzits.wordpress.com/2013/11/17/customseekbar/
但是我期待像
这样的东西有没有办法画出这条垂直的有缺口线?我该如何绘制这条垂直线?
最佳答案Progress bar with divider是@Nilesh Rathod提到的好看的地方.您可以使用canvas.drawRoundRect();而不是使用canvas.drawRect();简短的例子:@H_404_7@for (int i = 0; i < NUM_SEGMENTS; i++) { float lolevel = i / (float) NUM_SEGMENTS; float hiLevel = (i + 1) / (float) NUM_SEGMENTS; if (lolevel <= level && level <= hiLevel) { float mIDdle = mSegment.left + NUM_SEGMENTS * segmentWIDth * (level - lolevel); canvas.drawRoundRect(mSegment.left,mSegment.top,mIDdle,mSegment.bottom,mPaint); mPaint.setcolor(mBackground); canvas.drawRoundRect(mIDdle,mSegment.right,mPaint); } else { canvas.drawRoundRect(mSegment,mPaint); } mSegment.offset(mSegment.wIDth() + gapWIDth,0); }
我将上述代码完全归功于上述链接的创建者,并且不要将其中的任何内容声称为我的,因为我只是说明了为达到预期效果而应该做出的改变.如果您遇到其他问题,请告诉我. 总结
以上是内存溢出为你收集整理的java – 多色自定义搜索栏全部内容,希望文章能够帮你解决java – 多色自定义搜索栏所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)