1 package com.google.android.DemoKit; 2 3 import android.text.SpannableStringBuilder; 4 import android.text.style.RelativeSizeSpan; 5 import android.text.style.SubscriptSpan; 6 import android.view.ViewGroup; 7 import android.widget.TextView; 8 9 public class ServoController implements Slider.SliderPositionListener { 10 private final int mServoNumber; 11 private final byte mCommandTarget; 12 private TextView mLabel; 13 private Slider mSlider; 14 private DemoKitActivity mActivity; 15 16 public ServoController(DemoKitActivity activity, int servoNumber) { 17 mActivity = activity; 18 mServoNumber = servoNumber; 19 mCommandTarget = (byte) (servoNumber - 1 + 0x10); 20 } 21 22 public void attachToView(ViewGroup targetView) { 23 mLabel = (TextView) targetView.getChildAt(0); 24 SpannableStringBuilder ssb = new SpannableStringBuilder("Servo"); 25 ssb.append(String.valueOf(mServoNumber)); 26 ssb.setSpan(new SubscriptSpan(), 5, 6, 0); 27 ssb.setSpan(new RelativeSizeSpan(0.7f), 5, 6, 0); 28 mLabel.setText(ssb); 29 mSlider = (Slider) targetView.getChildAt(1); 30 mSlider.setPositionListener(this); 31 } 32 33 public void onPositionChange(double value) { 34 byte v = (byte) (value * 255); 35 mActivity.sendCommand(DemoKitActivity.LED_SERVO_COMMAND, 36 mCommandTarget, v); 37 } 38 39 } 40