@@ -90,7 +90,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.SpeedView
android:id="@+id/speedView"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -103,7 +103,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.DeluxeSpeedView
android:id="@+id/deluxeSpeedView"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -116,7 +116,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.AwesomeSpeedometer
android:id="@+id/awesomeSpeedometer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -129,7 +129,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.RaySpeedometer
android:id="@+id/raySpeedometer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -142,7 +142,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.PointerSpeedometer
android:id="@+id/pointerSpeedometer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -155,7 +155,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.TubeSpeedometer
android:id="@+id/tubeSpeedometer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content" />
@@ -168,7 +168,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
< com.github.anastr.speedviewlib.ImageSpeedometer
android:id="@+id/imageSpeedometer"
- android:layout_width="300dp"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:sv_image="@drawable/your_image" />
@@ -208,7 +208,7 @@ and also you can see **Advanced Usage** in [Usage - Wiki](https://github.com/ana
* add fuel gauge component.
* build new custom speedometer.
-your `pull request` is always Welcome, please review the **[rules of contribution](https://github.com/anastr/SpeedView/wiki/Contributing)** to make useful change.
+your `pull request` is always Welcome, please review the **[rules of contribution](https://github.com/anastr/SpeedView/blob/master/CONTRIBUTING.md)** to make useful change.
## Coming Soon ...
i well try to draw this Speedometer.
diff --git a/app/build.gradle b/app/build.gradle
index 40daf7e..94b7e6e 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,13 +1,13 @@
apply plugin: 'com.android.application'
android {
- compileSdkVersion 26
- buildToolsVersion '26.0.2'
+ compileSdkVersion 27
+ buildToolsVersion '27.0.0'
defaultConfig {
applicationId "com.github.anastr.speedview"
minSdkVersion 14
- targetSdkVersion 26
+ targetSdkVersion 27
versionCode 1
versionName "1.0"
}
@@ -23,6 +23,6 @@ android {
}
dependencies {
- compile 'com.android.support:appcompat-v7:26.+'
+ compile 'com.android.support:appcompat-v7:27.+'
compile project(':speedviewlib')
}
diff --git a/app/src/main/java/com/github/anastr/speedview/AwesomeSpeedometerActivity.java b/app/src/main/java/com/github/anastr/speedview/AwesomeSpeedometerActivity.java
index ff001b9..b9269c6 100644
--- a/app/src/main/java/com/github/anastr/speedview/AwesomeSpeedometerActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/AwesomeSpeedometerActivity.java
@@ -23,12 +23,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_awesome_speedometer);
- awesomeSpeedometer = (AwesomeSpeedometer) findViewById(R.id.awesomeSpeedometer);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- speedTo = (Button) findViewById(R.id.speedTo);
- realSpeedTo = (Button) findViewById(R.id.realSpeedTo);
- stop = (Button) findViewById(R.id.stop);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ awesomeSpeedometer = findViewById(R.id.awesomeSpeedometer);
+ seekBar = findViewById(R.id.seekBar);
+ speedTo = findViewById(R.id.speedTo);
+ realSpeedTo = findViewById(R.id.realSpeedTo);
+ stop = findViewById(R.id.stop);
+ textSpeed = findViewById(R.id.textSpeed);
speedTo.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/ControlActivity.java b/app/src/main/java/com/github/anastr/speedview/ControlActivity.java
index 4db6299..9b1084c 100644
--- a/app/src/main/java/com/github/anastr/speedview/ControlActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/ControlActivity.java
@@ -27,12 +27,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_control);
- speedView = (SpeedView) findViewById(R.id.awesomeSpeedometer);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
- maxSpeed = (EditText) findViewById(R.id.maxSpeed);
- speedometerWidth = (EditText) findViewById(R.id.speedometerWidth);
- withTremble = (CheckBox) findViewById(R.id.withTremble);
+ speedView = findViewById(R.id.awesomeSpeedometer);
+ seekBar = findViewById(R.id.seekBar);
+ textSpeed = findViewById(R.id.textSpeed);
+ maxSpeed = findViewById(R.id.maxSpeed);
+ speedometerWidth = findViewById(R.id.speedometerWidth);
+ withTremble = findViewById(R.id.withTremble);
withTremble.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
@@ -87,7 +87,7 @@ public void setSpeedometerWidth(View view) {
}
public void setSpeedTextSize(View view) {
- EditText speedTextSize = (EditText) findViewById(R.id.speedTextSize);
+ EditText speedTextSize = findViewById(R.id.speedTextSize);
try {
float size = Float.parseFloat(speedTextSize.getText().toString());
speedView.setSpeedTextSize(size);
@@ -98,7 +98,7 @@ public void setSpeedTextSize(View view) {
}
public void setIndicatorColor(View view) {
- EditText indicatorColor = (EditText) findViewById(R.id.indicatorColor);
+ EditText indicatorColor = findViewById(R.id.indicatorColor);
try{
speedView.setIndicatorColor(Color.parseColor(indicatorColor.getText().toString()));
} catch (Exception e) {
@@ -107,7 +107,7 @@ public void setIndicatorColor(View view) {
}
public void setCenterCircleColor(View view) {
- EditText centerCircleColor = (EditText) findViewById(R.id.centerCircleColor);
+ EditText centerCircleColor = findViewById(R.id.centerCircleColor);
try{
speedView.setCenterCircleColor(Color.parseColor(centerCircleColor.getText().toString()));
} catch (Exception e) {
@@ -116,7 +116,7 @@ public void setCenterCircleColor(View view) {
}
public void setLowSpeedColor(View view) {
- EditText lowSpeedColor = (EditText) findViewById(R.id.lowSpeedColor);
+ EditText lowSpeedColor = findViewById(R.id.lowSpeedColor);
try{
speedView.setLowSpeedColor(Color.parseColor(lowSpeedColor.getText().toString()));
} catch (Exception e) {
@@ -125,7 +125,7 @@ public void setLowSpeedColor(View view) {
}
public void setMediumSpeedColor(View view) {
- EditText mediumSpeedColor = (EditText) findViewById(R.id.mediumSpeedColor);
+ EditText mediumSpeedColor = findViewById(R.id.mediumSpeedColor);
try{
speedView.setMediumSpeedColor(Color.parseColor(mediumSpeedColor.getText().toString()));
} catch (Exception e) {
@@ -134,7 +134,7 @@ public void setMediumSpeedColor(View view) {
}
public void setHighSpeedColor(View view) {
- EditText highSpeedColor = (EditText) findViewById(R.id.highSpeedColor);
+ EditText highSpeedColor = findViewById(R.id.highSpeedColor);
try{
speedView.setHighSpeedColor(Color.parseColor(highSpeedColor.getText().toString()));
} catch (Exception e) {
diff --git a/app/src/main/java/com/github/anastr/speedview/CreateProgrammatically.java b/app/src/main/java/com/github/anastr/speedview/CreateProgrammatically.java
index b36467a..c09e035 100644
--- a/app/src/main/java/com/github/anastr/speedview/CreateProgrammatically.java
+++ b/app/src/main/java/com/github/anastr/speedview/CreateProgrammatically.java
@@ -35,11 +35,11 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_create_programmatically);
- rootSpeedometer = (LinearLayout) findViewById(R.id.root_speedometer);
+ rootSpeedometer = findViewById(R.id.root_speedometer);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/DeluxeSpeedActivity.java b/app/src/main/java/com/github/anastr/speedview/DeluxeSpeedActivity.java
index 3c22a6f..cd4325e 100644
--- a/app/src/main/java/com/github/anastr/speedview/DeluxeSpeedActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/DeluxeSpeedActivity.java
@@ -26,12 +26,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_deluxe_speed);
- deluxeSpeedView = (DeluxeSpeedView) findViewById(R.id.deluxeSpeedView);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
- withTremble = (CheckBox) findViewById(R.id.withTremble);
- withEffects = (CheckBox) findViewById(R.id.withEffects);
+ deluxeSpeedView = findViewById(R.id.deluxeSpeedView);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
+ withTremble = findViewById(R.id.withTremble);
+ withEffects = findViewById(R.id.withEffects);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/ImageSpeedometerActivity.java b/app/src/main/java/com/github/anastr/speedview/ImageSpeedometerActivity.java
index 72372a4..b0bbdae 100644
--- a/app/src/main/java/com/github/anastr/speedview/ImageSpeedometerActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/ImageSpeedometerActivity.java
@@ -23,10 +23,10 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_speedometer);
- imageSpeedometer = (ImageSpeedometer) findViewById(R.id.imageSpeedometer);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ imageSpeedometer = findViewById(R.id.imageSpeedometer);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/MainActivity.java b/app/src/main/java/com/github/anastr/speedview/MainActivity.java
index 7e5b57f..7bc4fa4 100644
--- a/app/src/main/java/com/github/anastr/speedview/MainActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/MainActivity.java
@@ -18,7 +18,7 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
- ListView listView = (ListView) findViewById(R.id.list);
+ ListView listView = findViewById(R.id.list);
String[] values = new String[] {
"1. Speed View",
diff --git a/app/src/main/java/com/github/anastr/speedview/PointerActivity.java b/app/src/main/java/com/github/anastr/speedview/PointerActivity.java
index 19ee751..6cd1ae0 100644
--- a/app/src/main/java/com/github/anastr/speedview/PointerActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/PointerActivity.java
@@ -25,11 +25,11 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pointer);
- pointerSpeedometer = (PointerSpeedometer) findViewById(R.id.pointerSpeedometer);
- seekBarSpeed = (SeekBar) findViewById(R.id.seekBarSpeed);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
- textSpeedChange = (TextView) findViewById(R.id.textSpeedChange);
+ pointerSpeedometer = findViewById(R.id.pointerSpeedometer);
+ seekBarSpeed = findViewById(R.id.seekBarSpeed);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
+ textSpeedChange = findViewById(R.id.textSpeedChange);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/RayActivity.java b/app/src/main/java/com/github/anastr/speedview/RayActivity.java
index 6f7fb63..fd0a69b 100644
--- a/app/src/main/java/com/github/anastr/speedview/RayActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/RayActivity.java
@@ -23,14 +23,14 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ray);
- raySpeedometer = (RaySpeedometer) findViewById(R.id.raySpeedometer);
- seekBarSpeed = (SeekBar) findViewById(R.id.seekBarSpeed);
- seekBarDegree = (SeekBar) findViewById(R.id.seekBarDegree);
- seekBarWidth = (SeekBar) findViewById(R.id.seekBarWidth);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
- textDegree = (TextView) findViewById(R.id.textDegree);
- textWidth = (TextView) findViewById(R.id.textWidth);
+ raySpeedometer = findViewById(R.id.raySpeedometer);
+ seekBarSpeed = findViewById(R.id.seekBarSpeed);
+ seekBarDegree = findViewById(R.id.seekBarDegree);
+ seekBarWidth = findViewById(R.id.seekBarWidth);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
+ textDegree = findViewById(R.id.textDegree);
+ textWidth = findViewById(R.id.textWidth);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/SpeedTextPositionActivity.java b/app/src/main/java/com/github/anastr/speedview/SpeedTextPositionActivity.java
index e02e02a..5b29b77 100644
--- a/app/src/main/java/com/github/anastr/speedview/SpeedTextPositionActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/SpeedTextPositionActivity.java
@@ -21,12 +21,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_speed_text_position);
- speedometer = (Speedometer) findViewById(R.id.speedometer);
+ speedometer = findViewById(R.id.speedometer);
assert speedometer != null;
speedometer.speedTo(40);
- Spinner spinner = (Spinner) findViewById(R.id.spinner);
+ Spinner spinner = findViewById(R.id.spinner);
assert spinner != null;
spinner.setOnItemSelectedListener(this);
@@ -41,7 +41,7 @@ protected void onCreate(Bundle savedInstanceState) {
categories.add("BOTTOM_CENTER");
categories.add("BOTTOM_RIGHT");
- ArrayAdapter dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, categories);
+ ArrayAdapter dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, categories);
spinner.setAdapter(dataAdapter);
spinner.setSelection(7);
}
diff --git a/app/src/main/java/com/github/anastr/speedview/SpeedViewActivity.java b/app/src/main/java/com/github/anastr/speedview/SpeedViewActivity.java
index 504c951..4808930 100644
--- a/app/src/main/java/com/github/anastr/speedview/SpeedViewActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/SpeedViewActivity.java
@@ -24,10 +24,10 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_speed_view);
- speedView = (SpeedView) findViewById(R.id.speedView);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ speedView = findViewById(R.id.speedView);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/StartEndDegreeActivity.java b/app/src/main/java/com/github/anastr/speedview/StartEndDegreeActivity.java
index 93492a8..003f914 100644
--- a/app/src/main/java/com/github/anastr/speedview/StartEndDegreeActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/StartEndDegreeActivity.java
@@ -20,11 +20,11 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start_end_degree);
- speedometer = (Speedometer) findViewById(R.id.speedometer);
- seekBarStartDegree = (SeekBar) findViewById(R.id.seekBarStartDegree);
- seekBarEndDegree = (SeekBar) findViewById(R.id.seekBarEndDegree);
- textStartDegree = (TextView) findViewById(R.id.textStartDegree);
- textEndDegree = (TextView) findViewById(R.id.textEndDegree);
+ speedometer = findViewById(R.id.speedometer);
+ seekBarStartDegree = findViewById(R.id.seekBarStartDegree);
+ seekBarEndDegree = findViewById(R.id.seekBarEndDegree);
+ textStartDegree = findViewById(R.id.textStartDegree);
+ textEndDegree = findViewById(R.id.textEndDegree);
speedometer.speedPercentTo(50);
diff --git a/app/src/main/java/com/github/anastr/speedview/TickActivity.java b/app/src/main/java/com/github/anastr/speedview/TickActivity.java
index c9e4dd0..e5585d8 100644
--- a/app/src/main/java/com/github/anastr/speedview/TickActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/TickActivity.java
@@ -23,12 +23,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tick);
- speedometer = (Speedometer) findViewById(R.id.speedometer);
- withRotation = (CheckBox) findViewById(R.id.cb_withRotation);
- seekBarTickNumbers = (SeekBar) findViewById(R.id.seekBarStartDegree);
- seekBarTickPadding = (SeekBar) findViewById(R.id.seekBarTickPadding);
- textTicks = (TextView) findViewById(R.id.textTickNumber);
- textTickPadding = (TextView) findViewById(R.id.textTickPadding);
+ speedometer = findViewById(R.id.speedometer);
+ withRotation = findViewById(R.id.cb_withRotation);
+ seekBarTickNumbers = findViewById(R.id.seekBarStartDegree);
+ seekBarTickPadding = findViewById(R.id.seekBarTickPadding);
+ textTicks = findViewById(R.id.textTickNumber);
+ textTickPadding = findViewById(R.id.textTickPadding);
speedometer.speedPercentTo(53);
diff --git a/app/src/main/java/com/github/anastr/speedview/TubeSpeedometerActivity.java b/app/src/main/java/com/github/anastr/speedview/TubeSpeedometerActivity.java
index ea39864..514cec7 100644
--- a/app/src/main/java/com/github/anastr/speedview/TubeSpeedometerActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/TubeSpeedometerActivity.java
@@ -23,10 +23,10 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tube_speedometer);
- tubeSpeedometer = (TubeSpeedometer) findViewById(R.id.speedometer);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ tubeSpeedometer = findViewById(R.id.speedometer);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/WorkWithIndicatorActivity.java b/app/src/main/java/com/github/anastr/speedview/WorkWithIndicatorActivity.java
index 804be56..275c071 100644
--- a/app/src/main/java/com/github/anastr/speedview/WorkWithIndicatorActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/WorkWithIndicatorActivity.java
@@ -27,13 +27,13 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_work_with_indicator);
- speedometer = (Speedometer) findViewById(R.id.speedometer);
- textWidth = (TextView) findViewById(R.id.textWidth);
+ speedometer = findViewById(R.id.speedometer);
+ textWidth = findViewById(R.id.textWidth);
assert speedometer != null;
speedometer.speedTo(40);
- Spinner spinner = (Spinner) findViewById(R.id.spinner);
+ Spinner spinner = findViewById(R.id.spinner);
assert spinner != null;
spinner.setOnItemSelectedListener(this);
@@ -53,7 +53,7 @@ protected void onCreate(Bundle savedInstanceState) {
spinner.setAdapter(dataAdapter);
spinner.setSelection(1);
- SeekBar seekBarWidth = (SeekBar) findViewById(R.id.seekBar);
+ SeekBar seekBarWidth = findViewById(R.id.seekBar);
assert seekBarWidth != null;
seekBarWidth.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
diff --git a/app/src/main/java/com/github/anastr/speedview/WorkWithModesActivity.java b/app/src/main/java/com/github/anastr/speedview/WorkWithModesActivity.java
index aaaeefd..c3c12d0 100644
--- a/app/src/main/java/com/github/anastr/speedview/WorkWithModesActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/WorkWithModesActivity.java
@@ -21,12 +21,12 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_work_with_modes);
- speedometer = (Speedometer) findViewById(R.id.speedometer);
+ speedometer = findViewById(R.id.speedometer);
assert speedometer != null;
speedometer.speedTo(40);
- Spinner spinner = (Spinner) findViewById(R.id.spinner);
+ Spinner spinner = findViewById(R.id.spinner);
assert spinner != null;
spinner.setOnItemSelectedListener(this);
@@ -41,7 +41,7 @@ protected void onCreate(Bundle savedInstanceState) {
categories.add("BOTTOM_RIGHT");
categories.add("BOTTOM_LEFT");
- ArrayAdapter dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, categories);
+ ArrayAdapter dataAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_dropdown_item, categories);
spinner.setAdapter(dataAdapter);
spinner.setSelection(0);
}
diff --git a/app/src/main/java/com/github/anastr/speedview/WorkWithNoteActivity.java b/app/src/main/java/com/github/anastr/speedview/WorkWithNoteActivity.java
index 7c45474..b5314cd 100644
--- a/app/src/main/java/com/github/anastr/speedview/WorkWithNoteActivity.java
+++ b/app/src/main/java/com/github/anastr/speedview/WorkWithNoteActivity.java
@@ -31,10 +31,10 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_work_with_note);
- speedView = (SpeedView) findViewById(R.id.speedView);
- seekBar = (SeekBar) findViewById(R.id.seekBar);
- ok = (Button) findViewById(R.id.ok);
- textSpeed = (TextView) findViewById(R.id.textSpeed);
+ speedView = findViewById(R.id.speedView);
+ seekBar = findViewById(R.id.seekBar);
+ ok = findViewById(R.id.ok);
+ textSpeed = findViewById(R.id.textSpeed);
ok.setOnClickListener(new View.OnClickListener() {
@Override
diff --git a/app/src/main/res/layout/activity_pointer.xml b/app/src/main/res/layout/activity_pointer.xml
index 174cd66..eb94d68 100644
--- a/app/src/main/res/layout/activity_pointer.xml
+++ b/app/src/main/res/layout/activity_pointer.xml
@@ -8,7 +8,7 @@
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
- android:background="#83f11b"
+ android:background="#7be11b"
android:orientation="vertical"
tools:context="com.github.anastr.speedview.PointerActivity">
@@ -17,7 +17,7 @@
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- app:sv_backgroundCircleColor="#83f11b"
+ app:sv_backgroundCircleColor="#7be11b"
app:sv_speedometerColor="#00ccff"
app:sv_pointerColor="#f00"
app:sv_unitTextSize="15sp"
diff --git a/build.gradle b/build.gradle
index ea1cca6..be54db2 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,7 +6,7 @@ buildscript {
google()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.0.0'
+ classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
classpath "com.github.dcendents:android-maven-gradle-plugin:1.4.1"
diff --git a/speedviewlib/build.gradle b/speedviewlib/build.gradle
index 27964f8..c3a857e 100644
--- a/speedviewlib/build.gradle
+++ b/speedviewlib/build.gradle
@@ -3,12 +3,12 @@ apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
android {
- compileSdkVersion 26
- buildToolsVersion '26.0.2'
+ compileSdkVersion 27
+ buildToolsVersion '27.0.0'
defaultConfig {
minSdkVersion 8
- targetSdkVersion 26
+ targetSdkVersion 27
versionCode 1
versionName "1.0"
}
@@ -49,7 +49,7 @@ Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
group = 'com.github.anastr'
-version = '1.1.6'
+version = '1.1.7'
bintray {
user = properties.getProperty("bintray.user")
diff --git a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/AwesomeSpeedometer.java b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/AwesomeSpeedometer.java
index cb8470d..e2e175f 100644
--- a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/AwesomeSpeedometer.java
+++ b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/AwesomeSpeedometer.java
@@ -29,8 +29,6 @@ public class AwesomeSpeedometer extends Speedometer {
private int speedometerColor = 0xff00e6e6;
- private float triangleHeight = 0f;
-
public AwesomeSpeedometer(Context context) {
this(context, null);
}
@@ -110,14 +108,11 @@ private void updateGradient() {
private void initDraw() {
ringPaint.setStrokeWidth(getSpeedometerWidth());
markPaint.setColor(getMarkColor());
- textPaint.setColor(getTextColor());
- textPaint.setTextSize(getTextSize());
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
- initDraw();
drawSpeedUnitText(canvas);
drawIndicator(canvas);
@@ -135,7 +130,7 @@ protected void updateBackgroundBitmap() {
markPath.lineTo(getSize() *.5f, markH + getPadding());
markPaint.setStrokeWidth(markH/5f);
- triangleHeight = getViewSizePa()/20f;
+ float triangleHeight = getViewSizePa() / 20f;
setInitTickPadding(triangleHeight);
trianglesPath.reset();
diff --git a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/DeluxeSpeedView.java b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/DeluxeSpeedView.java
index 199b863..a6938f0 100644
--- a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/DeluxeSpeedView.java
+++ b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/DeluxeSpeedView.java
@@ -107,7 +107,6 @@ private void initDraw() {
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
- initDraw();
RectF speedBackgroundRect = getSpeedUnitTextBounds();
speedBackgroundRect.left -= 2;
diff --git a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Gauge.java b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Gauge.java
index 0f1fd75..9d8adac 100644
--- a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Gauge.java
+++ b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Gauge.java
@@ -54,7 +54,7 @@ public abstract class Gauge extends View {
/** what is speed now in int */
private int currentIntSpeed = 0;
/** what is speed now in float */
- private float currentSpeed = 0f;
+ private float currentSpeed = minSpeed;
/** a degree to increases and decreases the indicator around correct speed */
private float trembleDegree = 4f;
private int trembleDuration = 1000;
@@ -107,6 +107,7 @@ public abstract class Gauge extends View {
private float speedTextPadding = dpTOpx(20f);
private boolean unitUnderSpeedText = false;
private Bitmap speedUnitTextBitmap;
+ private Canvas speedUnitTextCanvas;
/** draw speed text as integer .*/
public static final byte INTEGER_FORMAT = 0;
@@ -172,6 +173,8 @@ private void initAttributeSet(Context context, AttributeSet attrs) {
maxSpeed = a.getInt(R.styleable.Gauge_sv_maxSpeed, maxSpeed);
minSpeed = a.getInt(R.styleable.Gauge_sv_minSpeed, minSpeed);
+ speed = minSpeed;
+ currentSpeed = minSpeed;
withTremble = a.getBoolean(R.styleable.Gauge_sv_withTremble, withTremble);
textPaint.setColor(a.getColor(R.styleable.Gauge_sv_textColor, textPaint.getColor()));
textPaint.setTextSize(a.getDimension(R.styleable.Gauge_sv_textSize, textPaint.getTextSize()));
@@ -219,13 +222,16 @@ private void initAttributeValue() {
speedTextPaint.setTextAlign(Paint.Align.LEFT);
unitTextPaint.setTextAlign(Paint.Align.LEFT);
}
- recreateSpeedUnitTextBitmap();
}
@Override
protected void onSizeChanged(int w, int h, int oldW, int oldH) {
super.onSizeChanged(w, h, oldW, oldH);
setPadding(getPaddingLeft(), getPaddingTop(), getPaddingRight(), getPaddingBottom());
+ if (widthPa > 0 && heightPa > 0)
+ speedUnitTextBitmap = Bitmap.createBitmap(widthPa
+ , heightPa, Bitmap.Config.ARGB_8888);
+ speedUnitTextCanvas = new Canvas(speedUnitTextBitmap);
}
private void checkSpeedometerPercent() {
@@ -304,21 +310,19 @@ protected void onDraw(Canvas canvas) {
// check onSpeedChangeEvent.
int newSpeed = (int) currentSpeed;
- if (newSpeed != currentIntSpeed) {
- if (onSpeedChangeListener != null) {
- boolean byTremble = Build.VERSION.SDK_INT >= 11 && trembleAnimator.isRunning();
- boolean isSpeedUp = newSpeed > currentIntSpeed;
- int update = isSpeedUp ? 1 : -1;
- // this loop to pass on all speed values,
- // to safe handle by call gauge.getCorrectIntSpeed().
- while (currentIntSpeed != newSpeed) {
- currentIntSpeed += update;
- onSpeedChangeListener.onSpeedChange(this, isSpeedUp, byTremble);
- }
+ if (newSpeed != currentIntSpeed && onSpeedChangeListener != null) {
+ boolean byTremble = Build.VERSION.SDK_INT >= 11 && trembleAnimator.isRunning();
+ boolean isSpeedUp = newSpeed > currentIntSpeed;
+ int update = isSpeedUp ? 1 : -1;
+ // this loop to pass on all speed values,
+ // to safe handle by call gauge.getCorrectIntSpeed().
+ while (currentIntSpeed != newSpeed) {
+ currentIntSpeed += update;
+ onSpeedChangeListener.onSpeedChange(this, isSpeedUp, byTremble);
}
- else
- currentIntSpeed = newSpeed;
}
+ currentIntSpeed = newSpeed;
+
// check onSectionChangeEvent.
byte newSection = getSection();
if (section != newSection)
@@ -333,48 +337,38 @@ protected void onDraw(Canvas canvas) {
*/
protected void drawSpeedUnitText(Canvas canvas) {
RectF r = getSpeedUnitTextBounds();
- canvas.drawBitmap(updateSpeedUnitTextBitmap(), r.left, r.top, speedUnitTextBitmapPaint);
- }
-
- /**
- * fixable method to create {@link #speedUnitTextBitmap}
- * to avoid create it every frame in {@code onDraw} method.
- */
- private void recreateSpeedUnitTextBitmap() {
- speedUnitTextBitmap = Bitmap.createBitmap((int) getMaxWidthForSpeedUnitText()
- , (int) getSpeedUnitTextHeight(), Bitmap.Config.ARGB_8888);
+ updateSpeedUnitTextBitmap(getSpeedText());
+ canvas.drawBitmap(speedUnitTextBitmap, r.left - speedUnitTextBitmap.getWidth() *.5f + r.width() *.5f
+ , r.top - speedUnitTextBitmap.getHeight() *.5f + r.height() *.5f, speedUnitTextBitmapPaint);
}
/**
* clear {@link #speedUnitTextBitmap} and draw speed and unit Text
* taking into consideration {@link #speedometerTextRightToLeft} and {@link #unitUnderSpeedText}.
- * @return {@link #speedUnitTextBitmap} after update.
*/
- private Bitmap updateSpeedUnitTextBitmap() {
+ private void updateSpeedUnitTextBitmap(String speedText) {
speedUnitTextBitmap.eraseColor(Color.TRANSPARENT);
- Canvas c = new Canvas(speedUnitTextBitmap);
if (unitUnderSpeedText) {
- c.drawText(getSpeedText(), speedUnitTextBitmap.getWidth() *.5f
- , speedTextPaint.getTextSize(), speedTextPaint);
- c.drawText(unit, speedUnitTextBitmap.getWidth() *.5f
- , speedTextPaint.getTextSize() + unitSpeedInterval + unitTextPaint.getTextSize(), unitTextPaint);
- return speedUnitTextBitmap;
+ speedUnitTextCanvas.drawText(speedText, speedUnitTextBitmap.getWidth() *.5f
+ , speedUnitTextBitmap.getHeight() *.5f - unitSpeedInterval *.5f, speedTextPaint);
+ speedUnitTextCanvas.drawText(unit, speedUnitTextBitmap.getWidth() *.5f
+ , speedUnitTextBitmap.getHeight() *.5f + unitTextPaint.getTextSize() + unitSpeedInterval *.5f, unitTextPaint);
}
else {
float speedX;
float unitX;
if (isSpeedometerTextRightToLeft()) {
- speedX = unitTextPaint.measureText(unit) + unitSpeedInterval;
- unitX = 0f;
+ unitX = speedUnitTextBitmap.getWidth() *.5f - getSpeedUnitTextWidth() *.5f;
+ speedX = unitX + unitTextPaint.measureText(unit) + unitSpeedInterval;
}
else {
- speedX = 0f;
- unitX = speedTextPaint.measureText(getSpeedText()) + unitSpeedInterval;
+ speedX = speedUnitTextBitmap.getWidth() *.5f - getSpeedUnitTextWidth() *.5f;
+ unitX = speedX + speedTextPaint.measureText(speedText) + unitSpeedInterval;
}
- c.drawText(getSpeedText(), speedX, c.getHeight() - .15f, speedTextPaint);
- c.drawText(unit, unitX, c.getHeight() - .15f, unitTextPaint);
- return speedUnitTextBitmap;
+ float h = speedUnitTextBitmap.getHeight() *.5f + getSpeedUnitTextHeight() *.5f;
+ speedUnitTextCanvas.drawText(speedText, speedX, h, speedTextPaint);
+ speedUnitTextCanvas.drawText(unit, unitX, h, unitTextPaint);
}
}
@@ -384,24 +378,16 @@ private Bitmap updateSpeedUnitTextBitmap() {
*/
protected RectF getSpeedUnitTextBounds() {
float left = getWidthPa()*speedTextPosition.x -translatedDx + padding
- - speedUnitTextBitmap.getWidth()*speedTextPosition.width
+ - getSpeedUnitTextWidth()*speedTextPosition.width
+ speedTextPadding*speedTextPosition.paddingH;
float top = getHeightPa()*speedTextPosition.y -translatedDy + padding
- - speedUnitTextBitmap.getHeight()*speedTextPosition.height
+ - getSpeedUnitTextHeight()*speedTextPosition.height
+ speedTextPadding*speedTextPosition.paddingV;
return new RectF(left, top, left + getSpeedUnitTextWidth(), top + getSpeedUnitTextHeight());
}
- private float getMaxWidthForSpeedUnitText() {
- String maxSpeedText = speedTextFormat == FLOAT_FORMAT ? String.format(locale, "%.1f", (float)maxSpeed)
- : String.format(locale, "%d", maxSpeed);
- return unitUnderSpeedText ?
- Math.max(speedTextPaint.measureText(maxSpeedText), unitTextPaint.measureText(unit))
- : speedTextPaint.measureText(maxSpeedText) + unitTextPaint.measureText(unit) + unitSpeedInterval;
- }
-
/**
- * @return the width of speed & unit text.
+ * @return the width of speed & unit text at runtime.
*/
private float getSpeedUnitTextWidth() {
return unitUnderSpeedText ?
@@ -410,7 +396,7 @@ private float getSpeedUnitTextWidth() {
}
/**
- * @return the height of speed & unit text.
+ * @return the height of speed & unit text at runtime.
*/
private float getSpeedUnitTextHeight() {
return unitUnderSpeedText ?
@@ -787,7 +773,6 @@ public byte getSpeedTextFormat() {
*/
public void setSpeedTextFormat(byte speedTextFormat) {
this.speedTextFormat = speedTextFormat;
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
updateBackgroundBitmap();
@@ -933,7 +918,6 @@ public void setMinMaxSpeed(int minSpeed, int maxSpeed) {
cancelSpeedAnimator();
this.minSpeed = minSpeed;
this.maxSpeed = maxSpeed;
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
updateBackgroundBitmap();
@@ -1058,7 +1042,6 @@ public float getSpeedTextSize() {
*/
public void setSpeedTextSize(float speedTextSize) {
speedTextPaint.setTextSize(speedTextSize);
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
invalidate();
@@ -1081,7 +1064,6 @@ public float getUnitTextSize() {
*/
public void setUnitTextSize(float unitTextSize) {
unitTextPaint.setTextSize(unitTextSize);
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
updateBackgroundBitmap();
@@ -1101,7 +1083,6 @@ public String getUnit() {
*/
public void setUnit(String unit) {
this.unit = unit;
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
invalidate();
@@ -1415,7 +1396,6 @@ public float getUnitSpeedInterval() {
*/
public void setUnitSpeedInterval(float unitSpeedInterval) {
this.unitSpeedInterval = unitSpeedInterval;
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
updateBackgroundBitmap();
@@ -1463,7 +1443,6 @@ public void setUnitUnderSpeedText(boolean unitUnderSpeedText) {
speedTextPaint.setTextAlign(Paint.Align.LEFT);
unitTextPaint.setTextAlign(Paint.Align.LEFT);
}
- recreateSpeedUnitTextBitmap();
if (!attachedToWindow)
return;
updateBackgroundBitmap();
diff --git a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/SpeedView.java b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/SpeedView.java
index 8a12919..ad5b3dc 100644
--- a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/SpeedView.java
+++ b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/SpeedView.java
@@ -78,7 +78,6 @@ private void initDraw() {
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
- initDraw();
drawSpeedUnitText(canvas);
diff --git a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Speedometer.java b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Speedometer.java
index b6b723e..b2956d5 100644
--- a/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Speedometer.java
+++ b/speedviewlib/src/main/java/com/github/anastr/speedviewlib/Speedometer.java
@@ -111,7 +111,29 @@ private void initAttributeValue() {
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
- int size = Math.min(getMeasuredWidth(), getMeasuredHeight());
+
+ int defaultSize = (int) dpTOpx(250f);
+
+ int widthMode = MeasureSpec.getMode(widthMeasureSpec);
+ int heightMode = MeasureSpec.getMode(heightMeasureSpec);
+
+ int size;
+
+ if (widthMode == MeasureSpec.EXACTLY)
+ size = getMeasuredWidth();
+ else if (heightMode == MeasureSpec.EXACTLY)
+ size = getMeasuredHeight();
+ else if (widthMode == MeasureSpec.UNSPECIFIED && heightMode == MeasureSpec.UNSPECIFIED)
+ size = defaultSize;
+ else if (widthMode == MeasureSpec.AT_MOST && heightMode == MeasureSpec.AT_MOST)
+ size = Math.min(defaultSize, Math.min(getMeasuredWidth(), getMeasuredHeight()));
+ else {
+ if (widthMode == MeasureSpec.AT_MOST)
+ size = Math.min(defaultSize, getMeasuredWidth());
+ else
+ size = Math.min(defaultSize, getMeasuredHeight());
+ }
+
int newW = size / speedometerMode.divWidth;
int newH = size / speedometerMode.divHeight;
if (speedometerMode.isHalf) {