Advertisement
Guest User

Untitled

a guest
Feb 24th, 2014
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.20 KB | None | 0 0
  1. package nl.rigault.colormix.view;
  2.  
  3. import java.util.Observable;
  4. import java.util.Observer;
  5.  
  6. import nl.rigault.colormix.R;
  7. import nl.rigault.colormix.model.ColorModel;
  8.  
  9. import android.content.Context;
  10. import android.util.AttributeSet;
  11. import android.view.LayoutInflater;
  12. import android.widget.LinearLayout;
  13. import android.widget.SeekBar;
  14.  
  15. public class RGBSeekBarView extends LinearLayout implements Observer {
  16.    
  17.     protected ColorModel model;
  18.     private SeekBar r, g, b;
  19.    
  20.     public RGBSeekBarView(Context context) {
  21.         super(context);
  22.         init();
  23.     }
  24.    
  25.     public RGBSeekBarView(Context context, AttributeSet attrs) {
  26.         super(context, attrs);
  27.         init();
  28.     }
  29.    
  30.     public RGBSeekBarView(Context context, AttributeSet attrs, int defStyle) {
  31.         super(context, attrs, defStyle);
  32.         init();
  33.     }
  34.    
  35.     private void init() {
  36.         LayoutInflater  inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  37.         inflater.inflate(R.layout.rgbseekbar, this);
  38.        
  39.         r = (SeekBar) findViewById(R.id.seekBar1);
  40.         g = (SeekBar) findViewById(R.id.seekBar2);
  41.         b = (SeekBar) findViewById(R.id.seekBar3);
  42.        
  43.         SeekBarChangeListener listener = new SeekBarChangeListener();
  44.        
  45.         r.setOnSeekBarChangeListener(listener);
  46.         g.setOnSeekBarChangeListener(listener);
  47.         b.setOnSeekBarChangeListener(listener);
  48.        
  49.         model = ColorModel.getInstance();
  50.         model.addObserver(this);
  51.        
  52.     }
  53.  
  54.     @Override
  55.     public void update(Observable observable, Object data) {
  56.         r.setProgress(model.getR());
  57.         g.setProgress(model.getG());
  58.         b.setProgress(model.getB());
  59.        
  60.     }
  61.    
  62.     private class SeekBarChangeListener implements SeekBar.OnSeekBarChangeListener {
  63.  
  64.         @Override
  65.         public void onProgressChanged(SeekBar seekBar, int progress,
  66.                 boolean fromUser) {
  67.            
  68.             if (!fromUser) {
  69.                 return;
  70.             }
  71.            
  72.             if (seekBar == r) {
  73.                 model.setR(progress);
  74.             }
  75.             else if (seekBar == g) {
  76.                 model.setG(progress);
  77.             }
  78.             else {
  79.                 model.setB(progress);
  80.             }
  81.            
  82.            
  83.         }
  84.  
  85.         @Override
  86.         public void onStartTrackingTouch(SeekBar seekBar) {
  87.             // TODO Auto-generated method stub
  88.            
  89.         }
  90.  
  91.         @Override
  92.         public void onStopTrackingTouch(SeekBar seekBar) {
  93.             // TODO Auto-generated method stub
  94.            
  95.         }
  96.        
  97.     }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement