Android Seekbar拇指位置(以像素为单位) [英] Android Seekbar thumb position in pixel

查看:97
本文介绍了Android Seekbar拇指位置(以像素为单位)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取SeekBar的拇指当前位置?

How can I get current position of thumb in pixel for SeekBar?

目前,我正在尝试根据计算获得职位.

Currently I am trying to get the position on the bases of calculation.

屏幕宽度,搜索栏宽度,当前搜索进度等.但是我无法获得确切的位置.

Screen width, Seek Bar width, current seek progress and all. But I am not able to get exact position out of it.

有人有什么主意吗?

相同的编码如下.

我想在SeekBar拇指上方拖出一个组件.

I want to drow one component on top of SeekBar thumb.

translation = calculateTranslation(this.deviceScreenWidth, seekBarWidth, seekBar1T.getMax(), Integer.valueOf(ConstantData.seekbar_fifth.toString()), topComponentWidth, 0);
        if (currentapiVersion < android.os.Build.VERSION_CODES.HONEYCOMB){
            TranslateAnimation anim = new TranslateAnimation(translation - 1,
                    translation, 0, 0);
            anim.setFillAfter(true);
            anim.setDuration(0);
            edtTextRodUpDown.startAnimation(anim);  
        }else{
            edtTextRodUpDown.setTranslationX(translation);
        }

并像计算翻译一样

    private float calculateTranslation(int screenWidth, int seekBarWidth, int seekMaxProgress, int currentProgress, int componentWidth, int extraDifference){
    double calculatedPosition = 0f;
    calculatedPosition = (double)((double)(seekBarWidth-((screenWidth-seekBarWidth))) / (double)seekMaxProgress) * (double)currentProgress;
    calculatedPosition = calculatedPosition - (double)(componentWidth/2);
    calculatedPosition = calculatedPosition + extraDifference;
    Double d = new Double(calculatedPosition);
    if(d < 0){
        return 0.0f;
    }else if(d + componentWidth > screenWidth){
        return screenWidth-componentWidth;
    }else{
        return d.floatValue();
    }
}

推荐答案

我做到了:

int width = seekBar.getWidth()
            - seekBar.getPaddingLeft()
            - seekBar.getPaddingRight();
int thumbPos = seekBar.getPaddingLeft()
            + width
            * seekBar.getProgress()
            / seekBar.getMax();

这篇关于Android Seekbar拇指位置(以像素为单位)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆