2 baidu 36399370 baidu_36399370 于 2017.01.10 13:51 提问

安卓自定义seekbar FromUser始终为false

public class VerticalSeekBar extends SeekBar {
public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}

public VerticalSeekBar(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public VerticalSeekBar(Context context) {
    super(context);
}

@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
    super.onSizeChanged(h, w, oldh, oldw);
}

@Override
protected synchronized void onDraw(Canvas canvas) {
    canvas.rotate(-90);
    canvas.translate(-getHeight(), 0);
    super.onDraw(canvas);
}

@Override
protected synchronized void onMeasure(int widthMeasureSpec,
        int heightMeasureSpec) {
    super.onMeasure(heightMeasureSpec, widthMeasureSpec);
    setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth() + 100);
}

@Override
public boolean onTouchEvent(MotionEvent event) {

    if (!isEnabled()) {
        return false;
    }
    switch (event.getAction()) {
    case MotionEvent.ACTION_DOWN:
    case MotionEvent.ACTION_MOVE:
    case MotionEvent.ACTION_UP:
        setProgress(getMax()
                - (int) (getMax() * event.getY() / getHeight()));
        onSizeChanged(getWidth(), getHeight(), 0, 0);
        break;

    case MotionEvent.ACTION_CANCEL:
        break;
    }

    return true;
}

// 解决调用setProgress()方法时滑块不跟随的bug
@Override
public synchronized void setProgress(int progress) {
    super.setProgress(progress);
    onSizeChanged(getWidth(), getHeight(), 0, 0);
}

1个回答

YXTS122
YXTS122   2017.01.10 15:49

始终为false?无图无真相

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android Seekbar的onProgressChanged监听回调之fromUser参数解析(源码层次)
Android Seekbar的onProgressChanged监听回调之fromUser参数解析(源码层次)在Android开发中,Seekbar是我们高频率使用的几个控件之一,不管是使用原生系统的样式,还是根据各种五花八门的需求来定制自己项目中的SeekBar(在这里吐槽下项目经理),相信大家都做过,那么闲话不说进入正题。 SeekBar的继承关系为: 有些相对比较麻烦的需求要重写Se
SeekBar的onProgressChanged方法的参数说明
背景:自己写音乐播放器的时候,发现播放音乐时每次代码更新进度条都会触发SeekBar的onProgressChanged这个方法,更新当前播放歌曲的位置,导致歌曲播放又从更新的位置开始,后来发现如下解决方法:SeekBar.setOnSeekBarChangeListener监听后,回调接口里面的方法@Override public void onProgressChanged(SeekBar s
SeekBar的基本使用方法
SeekBar的基本使用方法a)         什么是SeekBarb)         使用SeekBar的步骤:  i.  在布局文件当中声明SeekBar:android:layout_width=”fill_parent” android:layout_height=”wrap_content”/>  ii. 实现OnSeekBarChangeListener接口,覆写方法方法调用:在进度条的任何地方按下鼠标时先调用onStartTrackingTouch一次,再调用onProgressChang
Android open source 带指示气泡的seekbar
Android open source 带指示气泡的seekbar
Android自定义SeekBar thumb透明效果
修改前: 修改后: 设置splitTrack为false即可:<!-- 是否设置一个间隙,让滑块与底部图片分隔 --> android:splitTrack="false"
自定义带标尺的seekbar
前言 第一次书写技术类的文章,希望能够将自己的所学和成长记录下来。 内容 由于公司的项目需要,需要制作一个指针滑动的seekbar,如图。 查阅了网上大量的相关实例和知识,在此进行一个总结,如有问题希望大家能够提出。 功能需求是这样的:需要一个带有标尺的滑动条,滑动部分为游标而不是常见的滑动背景的标尺,滑动游标的时候其他的如TextView的控件可以直接拿到当前游标所指的值。因此...
[Android] SeekBar 基本使用
【控件分析】  在日常使用生活中,我们接触到的播放器一般都有一个播放进度控制条,那个进度控制条其实就对应着Android基础控件库中的SeekBar控件。这个控件本质上是一个进度可由用户手动操作的进度条。【动画效果】【代码展示】public class MainActivity extends AppCompatActivity { private SeekBar seekBar = null
Android 自定义SeekBar显示进度百分比
效果图: 代码实现:package com.tchip.autosetting.view;import com.nineoldandroids.view.ViewHelper; import com.tchip.autosetting.R;import android.app.Dialog; import android.content.Context; import android.graphi
自定义seekbar带气泡文字提示BubbleSeekBar 在android7.0系统可以正常使用
自定义seekbar带气泡文字提示BubbleSeekBar,在android7.0系统可以正常使用
自定义SeekBar细节记录
1.为了兼容安卓5.0以上,style里面设置 android:splitTrack="false" 2.为了让出现效果,需要使用clip   xmlns:android="http://schemas.android.com/apk/res/android">