Tôi đang sử dụng android seekBar
làm bộ điều khiển thu phóng của máy ảnh.Tôi có thể sử dụng setProgress để thay đổi thanh tìm kiếm theo cách lập trình
Thanh tìm kiếm hoạt động như một nét duyên dáng khi kéo nhưng tôi muốn thêm nút phóng to và thu phóng để tăng tiến trình. Vấn đề là hai lần.
Khi tôi bấm vào nút Tôi phải nhấp vào nó 4 lần trước khi tiến độ thực increments
Nó không được cập nhật các ngón tay cái kéo trên thanh tiến độ
btn_zoomIn.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { try { zoomCtrl.setProgress(zoomCtrl.getProgress()+1); onProgressChanged(zoomCtrl, zoomCtrl.getProgress(), true); } catch(Exception ex) { } } }); btn_zoomOut.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { try { zoomCtrl.setProgress(zoomCtrl.getProgress()-1); } catch(Exception ex){ } } });
Ai có thể giúp tôi không?
ADDITION:
này là lớp verticalSeekBar tôi đang sử dụng thay vì seekBar:
public class VerticalSeekBar extends SeekBar {
/**
* Instantiates a new vertical seek bar.
*
* @param context the context
*/
public VerticalSeekBar(Context context) {
super(context);
}
/**
* Instantiates a new vertical seek bar.
*
* @param context the context
* @param attrs the attrs
* @param defStyle the def style
*/
public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
/**
* Instantiates a new vertical seek bar.
*
* @param context the context
* @param attrs the attrs
*/
public VerticalSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
/* (non-Javadoc)
* @see android.widget.AbsSeekBar#onSizeChanged(int, int, int, int)
*/
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(h, w, oldh, oldw);
}
/* (non-Javadoc)
* @see android.widget.AbsSeekBar#onMeasure(int, int)
*/
@Override
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
/* (non-Javadoc)
* @see android.widget.AbsSeekBar#onDraw(android.graphics.Canvas)
*/
protected void onDraw(Canvas c) {
c.rotate(-90);
c.translate(-getHeight(), 0);
super.onDraw(c);
}
/* (non-Javadoc)
* @see android.widget.AbsSeekBar#onTouchEvent(android.view.MotionEvent)
*/
@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;
}
}
và tôi đang thêm nó vào hoạt động của tôi như vậy:
zoomCtrl = new VerticalSeekBar(this);
zoomCtrl.setLayoutParams(zCtrl);
zoomCtrl.setProgressDrawable(getResources().getDrawable(R.drawable.zoombar_progress_bg));
zoomCtrl.setThumb(getResources().getDrawable(R.drawable.imagebtn_zoom_thumb));
zoomCtrl.setBackgroundDrawable(getResources().getDrawable(R.drawable.zoom_track));
zoomCtrl.setPadding(25, 0, 25, 0);
zoomCtrl.setOnSeekBarChangeListener(this);
rel.addView(zoomCtrl);
seekbar.setProgress (seekbar.getProgress() + 5) và seekbar.setOffsetThumb (int offset) hoặc seekbar.setThumb (drawable) – Tobrun
setThumb()? của nó đã được thiết lập .. setThumbOffset()? làm thế nào để tôi xác định bù đắp int? – erik
thực sự tôi không muốn đặt lại bù đắp .. thats không tốt – erik