如何将单独的垂直彩色线条动态添加到搜索栏的进度条?
我已经将progress.xml,progress_fill.xml和background_fill文件创建为单独的drawable,允许我在某种程度上自定义我的搜索栏。但是,根据情况,可能需要在搜索条上的任何点绘制各个垂直线。它们不能在XML布局文件中设置。
我想我需要以编程方式将小颜色的rects写入background_fill.xml drawable(我的progress_fill已设置为大部分透明)。
如何以编程方式将这些litte rects写入我的background_fill.xml drawable?
我在TextView中做了类似的事情,因为我使用了SpannableStringBuilder和ImageSpan将小的部分写入TextView。但是我没有看到它可用于搜索栏小部件。
答案 0 :(得分:2)
通过扩展SeekBar小部件来实现这一点。两步:首先,创建一个名为CustomSeekBar的新类来扩展SeekBar:
package com.example.seekbar;
class CustomSeekBar extends SeekBar {
public CustomSeekBar(Context context) {
super(context);
}
public CustomSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
private Paint paintRect = new Paint();
paintRect.setColor(Color.rgb(142, 196, 0));
private Rect audioRect = new Rect();
audioRect.set(5, 7, 4, 18);
canvas.drawRect(audioRect, paintRect);
}
}
其次,在布局xml文件中引用此CustomSeekBar:
<view class="com.example.seekbar.CustomSeekBar"
android:id="@+id/seekBar0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp" />