Bir kamera zoom denetleyicisi olarak bir android seekBar
kullanıyorum.Arama çubuğunu programatik olarak değiştirmek için setProgress kullanabilir miyim
Arama çubuğu sürüklerken çekicilik gibi çalışır ancak ilerlemeyi artıracak bir zoomIn ve zoomOut düğmesi eklemek istedim. Sorun iki kat.
Ben ilerleme aslında Buna da ilerleme çubuğu
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){ } } });
üzerine sürüklenebilir başparmak güncellenmiyorsa
artırır önce bunu 4 kez tıklamak zorunda düğmesini tıkladığında Birisi yardım edebilir mi lütfen?
ADDITION:
şudur i yerine Seekbar kullanıyorum verticalSeekBar sınıfı:
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;
}
}
ve ben şöyle Etkinliğime eklemeden ediyorum:
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) ve seekbar.setOffsetThumb (ofset int) ya da seekbar.setThumb (çekilebilir) – Tobrun
setThumb()? zaten ayarlanmış .. setThumbOffset()? offset int nasıl belirlenir? – erik
aslında ofset sıfırlamak istemiyorum .. o iyi değil – erik