Seekbar滑块上添加文字
来源:互联网 发布:如何建立的电影数据库 编辑:程序博客网 时间:2024/05/19 00:50
主要是继承SeekBar重新绘制滑块,在滑块上添加绘制文本,代码如下:
public class TextThumbSeekBar extends SeekBar { private int mThumbSize;//绘制滑块宽度 private TextPaint mTextPaint;//绘制文本的大小 private int mSeekBarMin=0;//滑块开始值 public TextThumbSeekBar(Context context) { this(context, null); } public TextThumbSeekBar(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.seekBarStyle); } public TextThumbSeekBar(Context context,AttributeSet attrs,int defStyleAttr){ super(context,attrs,defStyleAttr); mThumbSize=getResources().getDimensionPixelSize(R.dimen.width25); mTextPaint = new TextPaint(); mTextPaint.setColor(Color.WHITE); mTextPaint.setTextSize(getResources().getDimensionPixelSize(R.dimen.txtSize16)); mTextPaint.setTypeface(Typeface.DEFAULT_BOLD); mTextPaint.setTextAlign(Paint.Align.CENTER); } @Override protected synchronized void onDraw(Canvas canvas) { super.onDraw(canvas); int unsignedMin = mSeekBarMin < 0 ? mSeekBarMin * -1 : mSeekBarMin; String progressText = String.valueOf(getProgress()+unsignedMin); Rect bounds = new Rect(); mTextPaint.getTextBounds(progressText, 0, progressText.length(), bounds); int leftPadding = getPaddingLeft() - getThumbOffset(); int rightPadding = getPaddingRight() - getThumbOffset(); int width = getWidth() - leftPadding - rightPadding; float progressRatio = (float) getProgress() / getMax(); float thumbOffset = mThumbSize * (.5f - progressRatio); float thumbX = progressRatio * width + leftPadding + thumbOffset; float thumbY = getHeight() / 2f + bounds.height() / 2f; canvas.drawText(progressText, thumbX, thumbY, mTextPaint); } public void setMix(int min){ mSeekBarMin=min; }}
在布局文件中添加:
<TextThumbSeekBar android:id="@+id/seekbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:focusable="true" android:maxHeight="4dp" android:minHeight="4dp" android:paddingLeft="@dimen/padding20" android:paddingRight="@dimen/padding20" android:thumb="@drawable/view_bar_progress_thumb"/>view_bar_progress_thumb.xml文件的样式为:
<?xml version="1.0" encoding="UTF-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false"> <solid android:color="#06a7fa"/> <size android:width="@dimen/width25" android:height="@dimen/height25"/></shape>
0 0
- Seekbar滑块上添加文字
- 需要在seekbar的滑块上添加文字,请教下大神们应该怎样做,完全没思路啊。。。。
- 需要在seekbar的滑块上添加文字,请教下大神们应该怎样做,完全没思路啊。。。。
- 自定义SeekBar 带文字
- 添加SeekBar到AlertDialog.Builder上面
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- SeekBar
- React native添加iOS远程通知点击通知打开APP在APP杀死状态下闪退解决办法
- Java(2):Java SE疯狂复习第2篇(多态)
- P1164 小A点菜(背包方案数模板)
- P1049装箱问题(背包,变形)
- Android内存泄漏检测与MAT使用
- Seekbar滑块上添加文字
- IActivityManager ActivityManagerNative ActivityManagerService之间如何进行工作
- 如何使用Echarts将头条抓取结果以柱状图和饼形图展示?
- angular2.0定义指令
- HDU 1907 John nim博弈变形
- android 基础属性
- capitalize和uppercase都是首字母大写
- Python学习笔记(3)
- oracle 所有的数据类型