我想得到这种类型的输出.我正在使用自定义rangeseekbar.(参考此链接)
我有这个输出.

但我想得到这种类型的输出..

黄色选择器是一种范围搜索栏.我想创建自定义范围搜索栏,所以请帮助我.我已经创建了两个拇指rangeseekbar,但我想创建单个图像显示rangeseekbar,它应该是streatchable.
提前致谢.
我很多天都在尝试制作一个搜索栏,在搜索栏上显示一个内部有进展的泡沫.如Google Design中所示: Sliders
我也很难在Google设计指南中查看Seekbar
我有一个创建SeekBar的任务,如下所示:
我的问题是:如何对搜索栏进行分段?我以前制作了自定义搜索栏,但我不知道如何将条形图分割,线条延伸超出搜索条的高度.
我偶然发现了一个库,ComboSeekBar,但它并没有多大帮助.
提前感谢愿意提供帮助的任何人!
干杯!
我有一个带有drawable的自定义搜寻栏,它工作正常,我正在尝试通过搜索栏对用户操作进行工具提示文本,有没有不用第三方库的方法,我已经发布了下面的代码,用于自定义搜寻栏
我还附上了我希望在下面实现的示例进度工具提示
任何参考或解决方案将不胜感激
implementation "com.android.support:appcompat-v7:${android_support_version}"
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
seekBar.setThumb(getThumb(progressValue));
TooltipCompat.setTooltipText(seekBar, String.valueOf(progressValue));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
//Do nothing
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
//Do nothing
}
});
private Drawable getThumb(int progress) {
View thumbView = LayoutInflater.from(getActivity()).inflate(R.layout.seekbar_tv, null, false);
((TextView) thumbView.findViewById(R.id.tvProgress)).setText(progress + "");
thumbView.measure(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED);
Bitmap bitmap = Bitmap.createBitmap(thumbView.getMeasuredWidth(), thumbView.getMeasuredHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
thumbView.layout(0, 0, thumbView.getMeasuredWidth(), thumbView.getMeasuredHeight());
thumbView.draw(canvas);
return new BitmapDrawable(getResources(), bitmap);
}
<!--mySeekBarInLayout--> …Run Code Online (Sandbox Code Playgroud) 我有一个创建,播放和处理媒体播放器(只是音频)的服务,但我在主要活动中有一个搜索栏,我想要自然地显示音频文件的进度并允许用户寻找各种位置.
我有一点时间搞清楚的是:将UI中的搜索栏连接到服务中的媒体播放器的最佳或正确方法是什么?
我想将一行标签与 SeekBar 的步骤对齐。我这样做:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:id="@+id/labelsll"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:text="XS"
android:textColor="@color/primary"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="center"
android:text="S"
android:textColor="@color/primary"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="center"
android:text="M"
android:textColor="@color/primary"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="center"
android:text="L"
android:textColor="@color/primary"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:gravity="right"
android:text="XL"
android:textColor="@color/primary"/>
</LinearLayout>
<SeekBar
android:id="@+id/seekBar1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="4"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
需要左右填充,因为滑块不完全从左右开始
但是当你移动步进器时,几个标签最终会与它不一致。有什么办法可以做到这一点吗?
我想创建一个带有以下文本的自定义 SeekBar,根据拇指的位置更新其位置(和进度)。
我需要实现什么:
假设:
情况 1: 进度为 0%(或最小值 = 1000)并且文本应与拇指的左边框对齐。
情况 2: 进度文本显示在 Thumb drawable 上方并居中,因为它有空间可以绘制自己。
情况 3: 进度为 100%(或最大值 = 3000)并且文本应与 Thumb 的右边框对齐。
我已经有什么:
public class CustomSeekBar extends SeekBar {
private Paint paint;
private int[] coordCenterTemp = new int[]{0, 0};
// .....
private void init() {
paint = new Paint();
paint.setColor(Color.BLACK);
paint.setStyle(Paint.Style.STROKE);
paint.setTextSize(sp2px(20));
paint.setTextAlign(Paint.Align.CENTER);
}
private int sp2px(int sp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sp, getResources().getDisplayMetrics());
}
@Override
protected synchronized void onDraw(Canvas canvas) { …Run Code Online (Sandbox Code Playgroud) 我想更新搜索栏UI,以便在搜索栏的两个端点都有一条垂直线.我通过在android:progressDrawable属性中设置自定义可绘制图像(端点垂直线的水平线)来尝试此操作,但该搜索条不可见(只有拇指可见).我还尝试在搜索栏的左侧和右侧创建自定义视图,但是垂直线不会保留在不同设备的准确位置.此外,由于搜索栏具有默认的左右填充,我需要给出边距以在搜索条端点处精确地显示垂直线,这对于不同的设备可以是不同的.
达到这一要求的理想方法是什么?
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="@dimen/dp1"
android:paddingLeft="0px"
android:paddingRight="0px"
android:progressDrawable="@color/white"/>
<View
android:layout_width="@dimen/dp1"
android:layout_height="@dimen/dp10"
android:layout_alignLeft="@+id/seekBar"
android:layout_alignTop="@+id/seekBar"
android:layout_marginLeft="@dimen/dp16"
android:bawrckground="@color/white"
android:id="@+id/view" />
<View
android:layout_width="@dimen/dp1"
android:layout_height="@dimen/dp10"
android:layout_alignRight="@+id/seekBar"
android:layout_alignTop="@+id/seekBar"
android:layout_marginRight="@dimen/dp16"
android:background="@color/white”/>
Run Code Online (Sandbox Code Playgroud) 我如何设计自定义seekbar下面的图像


有没有人有想法请指导我。感谢大家的进步
我创建了一个带有自定义LinearGradient可绘制对象的搜索栏。但是,我希望能够更改每种颜色的渐变比例,这里我使用 3 种颜色,如果positions是,它们会均匀分布null。我想要的,其实是提供宽度或比于每种颜色,例如红色的变化率,并将其设置只形成0%至10%的seekBar width。
在这里,我想设置 0% 到 10% 的红色、10% - 80% 的黄色和 80% 到 100% 的红色,并且能够动态更改每种颜色的宽度值。
这是可能的,如果是,有人可以指导我如何操作吗?
我的代码
private ShapeDrawable getSeekBarGradientDrawable(int mRectWidth, int mRectHeight) {
int[] colors = new int[] { Color.RED, Color.YELLOW, getResources().getColor(R.color.primaryButton, null)};
DisplayMetrics displayMetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int width = displayMetrics.widthPixels - (int) getResources().getDimension(R.dimen.margin_padding_size_medium);
Shader shader = new LinearGradient(
0,
0,
width,
mRectHeight,
colors, new float[] {0.1f,0.7f,0.2f},
Shader.TileMode.CLAMP);
ShapeDrawable shape = new ShapeDrawable(new RectShape());
shape.getPaint().setShader(shader);
return …Run Code Online (Sandbox Code Playgroud) java android android-seekbar material-design android-graphics