java - 如何在Android的让图中的黑线随着滑动seekbar一起变化?
高洛峰
高洛峰 2017-04-17 15:47:33
[Java讨论组]
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(3)
迷茫

seekbar.setOnSeekBarChangeListener, 在onProgressChanged callback中动态的改变黑线View的marginTop即可


若需要在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

public class MainActivity extends AppCompatActivity {

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) {

        }
    });
    
}

}

天蓬老师

你是不是在onDraw里操作canvas的?这个ImageView有没有背景?

巴扎黑

没看出来你的问题是怎么造成的,可以贴上你的实现代码以帮你分析一下

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号