Easy in use android library for creating dashboard. With this library you can add the speedometer or tachometer to your app.
<com.github.matvapps.dashboardview.DashboardSpeedometer
android:id="@+id/dashboard_speedometer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:dd_indicator="DashboardIndicator"
app:dd_tickNumber="13" /> <com.github.matvapps.dashboardview.DashboardTachometer
android:id="@+id/dashboard_tachometer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:dd_indicator="DashboardIndicatorWithCircle"
app:dd_tickNumber="8"/> app:dd_deviceColor="@color/colorDeviceGreen" app:dd_indicatorColor="#a1d50000" app:dd_unit="km/h"
app:dd_unitTextSize="16sp"or remove it:
app:dd_use_unit="false" app:dd_withTremble="true"
app:dd_trembleDegree="2"
app:dd_trembleDuration="200"for center text:
app:dd_textColor="#1592ff"for speed text:
app:dd_speedTextColor="#1592ff"The shadow that follows the indicator (true by default)
app:dd_withIndicatorLight="true"speedometer = (DashboardSpeedometer) findViewById(R.id.dashboard_speedometer);
tachometer = (DashboardTachometer) findViewById(R.id.dashboard_tachometer);speedometer.moveTo(240);Or with duration (in millis):
speedometer.moveTo(240, 1300);public class DashboardActivity extends AppCompatActivity {
private DashboardSpeedometer customSpeedometer;
private SeekBar seekBarSpeed;
private DashboardTachometer customTachometer;
private SeekBar seekBarTurnovers;
private TextView textSpeed, textTurnovers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dashboard);
customSpeedometer = findViewById(R.id.pointerSpeedometer);
seekBarSpeed = findViewById(R.id.seekBarSpeed);
customTachometer = findViewById(R.id.pointerTachometer);
seekBarTurnovers = findViewById(R.id.seekBarTurnovers);
textSpeed = findViewById(R.id.textSpeed);
textTurnovers = findViewById(R.id.textTurnovers);
seekBarTurnovers.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
textTurnovers.setText(String.format(Locale.getDefault(), "%d", i));
customTachometer.moveTo(seekBarTurnovers.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
seekBarSpeed.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
textSpeed.setText(String.format(Locale.getDefault(), "%d", progress));
customSpeedometer.moveTo(seekBarSpeed.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
}Download via Gradle:
implementation 'com.github.matvapps:DashboardView:0.0.1'or Maven:
<dependency>
<groupId>com.github.matvapps</groupId>
<artifactId>DashboardView</artifactId>
<version>0.0.1</version>
<type>pom</type>
</dependency>Take a look at the sample project for more information.
Copyright 2017 github.com/matvapps
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
