बदलने के लिए सेट प्रोग्रेस का उपयोग कर सकता हूं, मैं कैमरा ज़ूम नियंत्रक के रूप में एंड्रॉइड seekBar
का उपयोग कर रहा हूं।क्या मैं एक खोज बार को प्रोग्रामेटिक रूप से
खोज बार ड्रैग करते समय एक आकर्षण की तरह काम करता है लेकिन मैं ज़ूम इन और ज़ूमऑट बटन जोड़ना चाहता हूं जो प्रगति में वृद्धि करेगा। समस्या दो गुना है।
जब मैं बटन मैं इसे क्लिक करने के लिए 4 बार से पहले प्रगति वास्तव में वृद्धि कर देता है
यह प्रगति बार
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){ } } });
पर खींचने योग्य अंगूठे अपडेट नहीं हो रहा है क्लिक करें क्या कोई मदद कर सकता है?
अलावा:
यह है verticalSeekBar वर्ग मैं 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;
}
}
और मैं तो जैसे मेरी गतिविधि में जोड़ने से कर रहा हूँ:
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) और seekbar.setOffsetThumb (ऑफसेट पूर्णांक) या seekbar.setThumb (drawable) – Tobrun
setThumb()? यह पहले से ही सेट है .. setThumbOffset()? मैं इंट ऑफसेट कैसे निर्धारित करूं? – erik
असल में मैं ऑफ़सेट रीसेट नहीं करना चाहता .. यह अच्छा नहीं है – erik