package com.github.anastr.speedview; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.SeekBar; import android.widget.TextView; import com.github.anastr.speedviewlib.AwesomeSpeedometer; import com.github.anastr.speedviewlib.DeluxeSpeedView; import com.github.anastr.speedviewlib.ImageSpeedometer; import com.github.anastr.speedviewlib.PointerSpeedometer; import com.github.anastr.speedviewlib.RaySpeedometer; import com.github.anastr.speedviewlib.SpeedView; import com.github.anastr.speedviewlib.base.Speedometer; import com.github.anastr.speedviewlib.TubeSpeedometer; import com.github.anastr.speedviewlib.components.Indicators.Indicator; import java.util.Locale; import java.util.Random; public class CreateProgrammatically extends AppCompatActivity { LinearLayout rootSpeedometer; Speedometer speedometer; SeekBar seekBar; Button ok; TextView textSpeed; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_create_programmatically); rootSpeedometer = (LinearLayout) findViewById(R.id.root_speedometer); seekBar = (SeekBar) findViewById(R.id.seekBar); ok = (Button) findViewById(R.id.ok); textSpeed = (TextView) findViewById(R.id.textSpeed); ok.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (speedometer != null) speedometer.speedTo(seekBar.getProgress()); } }); seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { textSpeed.setText(String.format(Locale.getDefault(), "%d", progress)); } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { } }); } public void addRandomSpeedometer(View view) { Random mad = new Random(); switch (mad.nextInt(7)) { case 0: speedometer = new SpeedView(this); break; case 1: speedometer = new DeluxeSpeedView(this); break; case 2: speedometer = new AwesomeSpeedometer(this); break; case 3: speedometer = new RaySpeedometer(this); break; case 4: speedometer = new PointerSpeedometer(this); break; case 5: speedometer = new TubeSpeedometer(this); break; case 6: speedometer = new ImageSpeedometer(this); speedometer.setIndicator(Indicator.Indicators.HalfLineIndicator); speedometer.setIndicatorWidth(speedometer.dpTOpx(5f)); speedometer.setSpeedTextColor(Color.WHITE); ((ImageSpeedometer)speedometer).setImageSpeedometer(R.drawable.for_image_speedometer); break; } rootSpeedometer.removeAllViews(); rootSpeedometer.addView(speedometer); } }