开发者社区> 问答> 正文

如何在Android的让图中的黑线随着滑动seekbar一起变化?

我现在想实现一个功能是:当我拖动图中seekbar的时候,上面的黑线可以上下移动。
具体的说,一个activity有一个seekbar,我怎么能在seekbar边滑动,上面的黑线也随着变化?
用canvas画黑线。
screenshot

展开
收起
蛮大人123 2016-03-06 14:28:10 2210 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    若需要在canvas中动态改变Y值。补充代码示例:

    public class LineView extends View {
    private int mProgressPercent;
    private Paint mPaint;
    public LineView(Context context) {
        super(context);
    }
    public LineView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public LineView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }
    public void update(int progress) {
        mProgressPercent = progress;
        invalidate();
    }
    @Override
    protected void onDraw(Canvas canvas) {
        if (mPaint == null) {
            mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
        }
        mPaint.setColor(Color.BLACK);
        float y = ((float) mProgressPercent / 100) * getHeight();
        canvas.drawLine(0, y, getWidth(), y, mPaint);
    }
    }

    Activity:

    private SeekBar mSeekBar;
    
    private LineView mLineView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
        mLineView = (LineView) findViewById(R.id.lineView);
        mSeekBar = (SeekBar) findViewById(R.id.seekBar);
    
        mSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                mLineView.update(progress);
            }
    
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
    
            }
    
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
    
            }
        });
        
    }
    2019-07-17 18:54:33
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载