SeekBar带有编号标题

时间:2013-11-18 05:30:19

标签: java android android-custom-view

如何创建一个数字高于它的搜索栏。例如,如果SeekBar的Max = 10,它将在搜索栏上方0到10之间。

我试图通过创建位于Seekbar上方的自定义视图来实现此目的,此视图扩展了线性布局(水平),n个textviews(n =搜索栏最大属性)被添加到LinearLayout。问题是我无法将数字直接放在搜索栏上的“凹槽”上方。

我是以正确的方式接近这个还是应该创建一个自定义视图来扩展Seekbar并通过将它们绘制到画布上来添加数字?有人可以给我一些关于如何解决这个问题的指示。

以下是我到目前为止的代码,如上所述,无论我如何尝试使用搜索栏和自定义视图上的填充,我都无法使数字与搜索栏完美对齐缺口(选定的指数)

   public class SeekBarNumberIndicator extends LinearLayout
     {

 TextView[] mNumbers;


    public SeekBarNumberIndicator(Context context)
    {
        super(context);
        // TODO Auto-generated constructor stub
    }

    public SeekBarNumberIndicator(Context context, AttributeSet attrs)
    {

        super(context, attrs);
        initView(context, attrs);
    }

    @SuppressLint("NewApi")
    public SeekBarNumberIndicator(Context context, AttributeSet attrs, int defStyle)
    {
        super(context, attrs, defStyle);

        initView(context, attrs);
    }

    protected void initView(Context context, AttributeSet attrs)
    {
        super.setOrientation(LinearLayout.HORIZONTAL);

        mNumbers = new TextView[11];
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT, 1);

        for(int x = 0; x < 11; x++){
            mNumbers[x] = new TextView(context);
            mNumbers[x].setLayoutParams(lp);
            mNumbers[x].setTextColor(Color.BLUE);
            mNumbers[x].setText(String.valueOf(x));
            mNumbers[x].setGravity(Gravity.LEFT);
            //mNumbers[x].setPadding(10, 0, 0, 0);

            super.addView(mNumbers[x]);

        }
    }
}

更新

我尝试了你发布的链接,出现同样的问题,滑动文本视图没有直接出现在拇指下,偏移量逐渐增加。我可以采取哪些额外措施使文本视图直接显示在拇指下(如果我可以解决这个问题,那么我确定可以调整解决方案以适应我的OP中的自定义视图)。我知道我可以开始向填充添加一些逻辑,这些逻辑会增加一些指数值,但这似乎是'hacky'谢谢

0 个答案:

没有答案