| package com.google.android.DemoKit; |
| |
| import android.text.SpannableStringBuilder; |
| import android.text.style.RelativeSizeSpan; |
| import android.text.style.SubscriptSpan; |
| import android.view.ViewGroup; |
| import android.widget.TextView; |
| |
| public class ServoController implements Slider.SliderPositionListener { |
| private final int mServoNumber; |
| private final byte mCommandTarget; |
| private TextView mLabel; |
| private Slider mSlider; |
| private DemoKitActivity mActivity; |
| |
| public ServoController(DemoKitActivity activity, int servoNumber) { |
| mActivity = activity; |
| mServoNumber = servoNumber; |
| mCommandTarget = (byte) (servoNumber - 1 + 0x10); |
| } |
| |
| public void attachToView(ViewGroup targetView) { |
| mLabel = (TextView) targetView.getChildAt(0); |
| SpannableStringBuilder ssb = new SpannableStringBuilder("Servo"); |
| ssb.append(String.valueOf(mServoNumber)); |
| ssb.setSpan(new SubscriptSpan(), 5, 6, 0); |
| ssb.setSpan(new RelativeSizeSpan(0.7f), 5, 6, 0); |
| mLabel.setText(ssb); |
| mSlider = (Slider) targetView.getChildAt(1); |
| mSlider.setPositionListener(this); |
| } |
| |
| public void onPositionChange(double value) { |
| byte v = (byte) (value * 255); |
| mActivity.sendCommand(DemoKitActivity.LED_SERVO_COMMAND, |
| mCommandTarget, v); |
| } |
| |
| } |