今天給大家推薦一個Android垂直型的SeekBar,可能對於你們在項目中有所協助。這個已經有人具體實現。本人只是在這裡稍做推薦。有關更多的好的控制項本人在網上已建了一個網站專門做Android開原始檔控制的收錄以及範例程式碼的各種使用用法,目的是協助更多的Android開發人員,讓更多的人愛上Android開發人員。可以給出具體實現的思想及代碼。
按以前寫作方式,首先上:
具體實現方式是繼續SeekBar,重寫onDraw方法只要旋轉90度就可以實現。
給出以上兩個其中的一個代碼:
package android.widget; import android.content.Context;import android.graphics.Canvas;import android.util.AttributeSet;import android.util.Log;import android.view.MotionEvent; public class VerticalSeekBar extendsSeekBar { public VerticalSeekBar(Context context) { super(context); } public VerticalSeekBar(Context context, AttributeSet attrs, intdefStyle) { super(context, attrs, defStyle); } public VerticalSeekBar(Context context,AttributeSet attrs) { super(context, attrs); } protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(h, w, oldh, oldw); } @Override protected synchronized void onMeasure(int widthMeasureSpec, intheightMeasureSpec) { super.onMeasure(heightMeasureSpec, widthMeasureSpec); setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); } protected void onDraw(Canvas c) { c.rotate(-90); c.translate(-getHeight(),0); super.onDraw(c); } @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: int i=0; i=getMax() - (int)(getMax() * event.getY() / getHeight()); setProgress(i); Log.i("Progress",getProgress()+""); onSizeChanged(getWidth(),getHeight(), 0, 0); break; case MotionEvent.ACTION_CANCEL: break; } return true; } }
具體用法和一般的seekBar一樣。監聽其改變事件:
verticalSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public voidonStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public voidonStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } @Override public voidonProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { vsProgress.setText(progress+""); } });
以上就是垂直型的seekBar的實現。歡迎大家關注個人本人網站:http://android.mshare.me/ 專註於分享Android開源【包括開源UI、開源項目、範例程式碼】以及主站http:www.mshare.me--分享移動互連網。也歡迎大家踴躍貢獻你的代碼投稿到本站。
如需轉載引用請註明出處:http://blog.csdn.net/jiahui524