diff --git a/HorizontalBarGraphSample/.gitignore b/HorizontalBarGraphSample/.gitignore
index 39fb081..86870d4 100644
--- a/HorizontalBarGraphSample/.gitignore
+++ b/HorizontalBarGraphSample/.gitignore
@@ -5,5 +5,7 @@
/.idea/libraries
.DS_Store
/build
+.idea/
/captures
+local.properties
.externalNativeBuild
diff --git a/HorizontalBarGraphSample/.idea/gradle.xml b/HorizontalBarGraphSample/.idea/gradle.xml
deleted file mode 100644
index 83dbb8d..0000000
--- a/HorizontalBarGraphSample/.idea/gradle.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HorizontalBarGraphSample/.idea/misc.xml b/HorizontalBarGraphSample/.idea/misc.xml
deleted file mode 100644
index 3963879..0000000
--- a/HorizontalBarGraphSample/.idea/misc.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HorizontalBarGraphSample/.idea/modules.xml b/HorizontalBarGraphSample/.idea/modules.xml
deleted file mode 100644
index 5b53ae1..0000000
--- a/HorizontalBarGraphSample/.idea/modules.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HorizontalBarGraphSample/.idea/runConfigurations.xml b/HorizontalBarGraphSample/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460..0000000
--- a/HorizontalBarGraphSample/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/HorizontalBarGraphSample/app/build.gradle b/HorizontalBarGraphSample/app/build.gradle
index 5aac1d6..bf48a51 100644
--- a/HorizontalBarGraphSample/app/build.gradle
+++ b/HorizontalBarGraphSample/app/build.gradle
@@ -5,7 +5,7 @@ android {
compileSdkVersion 26
defaultConfig {
applicationId "br.com.felix.horizontalbargraphsample"
- minSdkVersion 15
+ minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
@@ -17,6 +17,7 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ buildToolsVersion '27.0.2'
}
dependencies {
@@ -27,5 +28,5 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
- compile project(":horizontalbargraph")
+ implementation project(":horizontalbargraph")
}
diff --git a/HorizontalBarGraphSample/app/src/main/java/br/com/felix/horizontalbargraphsample/MainActivity.java b/HorizontalBarGraphSample/app/src/main/java/br/com/felix/horizontalbargraphsample/MainActivity.java
index 6d82214..831a603 100644
--- a/HorizontalBarGraphSample/app/src/main/java/br/com/felix/horizontalbargraphsample/MainActivity.java
+++ b/HorizontalBarGraphSample/app/src/main/java/br/com/felix/horizontalbargraphsample/MainActivity.java
@@ -25,12 +25,12 @@ protected void onCreate(Bundle savedInstanceState) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
- horizontal.add(new BarItem("xxx", 500d));
+ horizontal.add(new BarItem("xxx", 500d).setRadius(40));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
- horizontal.add(new BarItem("yyy", 1000d));
+ horizontal.add(new BarItem("yyy", 1000d).setRadius(40));
}
}, 5000);
}
@@ -42,7 +42,7 @@ private List itens() {
List items = new ArrayList<>();
int i = 0;
- items.add(new BarItem("Teste " + i, 250d));
+ items.add(new BarItem("Teste " + i, 250d).setRadius(40));
i++;
items.add(new BarItem("Teste " + i, 800d, 550d));
diff --git a/HorizontalBarGraphSample/build.gradle b/HorizontalBarGraphSample/build.gradle
index 4c8ff81..cb514a2 100644
--- a/HorizontalBarGraphSample/build.gradle
+++ b/HorizontalBarGraphSample/build.gradle
@@ -7,7 +7,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.0.1'
+ classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
// NOTE: Do not place your application dependencies here; they belong
diff --git a/HorizontalBarGraphSample/gradle/wrapper/gradle-wrapper.properties b/HorizontalBarGraphSample/gradle/wrapper/gradle-wrapper.properties
index 059b096..8049c68 100644
--- a/HorizontalBarGraphSample/gradle/wrapper/gradle-wrapper.properties
+++ b/HorizontalBarGraphSample/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Jan 16 17:22:33 BRST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
diff --git a/HorizontalBarGraphSample/horizontalbargraph/build.gradle b/HorizontalBarGraphSample/horizontalbargraph/build.gradle
index c5da118..3af072b 100644
--- a/HorizontalBarGraphSample/horizontalbargraph/build.gradle
+++ b/HorizontalBarGraphSample/horizontalbargraph/build.gradle
@@ -1,18 +1,16 @@
apply plugin: 'com.android.library'
-apply plugin: 'com.github.dcendents.android-maven'
+//apply plugin: 'com.github.dcendents.android-maven'
group='com.github.felixsoares'
android {
- compileSdkVersion 26
+ compileSdk 31
defaultConfig {
minSdkVersion 15
- targetSdkVersion 26
- versionCode 1
- versionName "1.0"
+ targetSdkVersion 31
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -24,6 +22,7 @@ android {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
+ buildToolsVersion '27.0.2'
}
@@ -35,5 +34,5 @@ dependencies {
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
- compile 'com.android.support:design:27.0.2'
+ implementation 'com.android.support:design:26.1.0'
}
diff --git a/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/adapter/BarItemRecycleViewAdapter.java b/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/adapter/BarItemRecycleViewAdapter.java
index b50eb4c..8e3d5d3 100644
--- a/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/adapter/BarItemRecycleViewAdapter.java
+++ b/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/adapter/BarItemRecycleViewAdapter.java
@@ -1,19 +1,23 @@
package br.com.felix.horizontalbargraph.adapter;
+import android.animation.ValueAnimator;
+import android.graphics.drawable.GradientDrawable;
import android.support.v7.widget.RecyclerView;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.animation.LinearInterpolator;
import android.widget.LinearLayout;
import android.widget.TextView;
+
import java.util.List;
import java.util.Locale;
import br.com.felix.horizontalbargraph.R;
import br.com.felix.horizontalbargraph.interfaces.OnItemClickListener;
import br.com.felix.horizontalbargraph.model.BarItem;
-import br.com.felix.horizontalbargraph.util.Util;
/**
* Created by user on 12/01/2018.
@@ -25,12 +29,14 @@ public class BarItemRecycleViewAdapter extends RecyclerView.Adapter items;
private OnItemClickListener listener;
private Locale locale;
+ public int size;
public BarItemRecycleViewAdapter(List items, OnItemClickListener listener, Locale locale) {
this.items = items;
this.listener = listener;
this.locale = locale;
getBiggerValue(items);
+ size =Math.min(items.size(), 3);
}
private void getBiggerValue(List items) {
@@ -56,15 +62,15 @@ public void onBindViewHolder(ItemViewHolder holder, int position) {
BarItem viewModel = getItem(position);
holder.txtDesciption.setText(viewModel.getDescription());
- holder.txtValue1.setText(Util.formatMoney(viewModel.getValue1(), locale));
+ holder.txtValue1.setText(viewModel.getValue1().intValue() + "");
chanceViewParam(holder.txtValue1, viewModel.getTextColorBar1());
- int percent = getPercent(viewModel.getValue1());
+ double percent = getPercent(viewModel.getValue1());
changWidthBar(percent, holder.linearValue1, holder.linearValue1Margin);
chanceViewParam(holder.linearValue1, viewModel.getColorBar1());
if (viewModel.getValue2() != null && viewModel.getValue2() >= 0) {
- holder.txtValue2.setText(Util.formatMoney(viewModel.getValue2(), locale));
+ holder.txtValue2.setText(viewModel.getValue2().intValue() + "");
chanceViewParam(holder.txtValue2, viewModel.getTextColorBar2());
percent = getPercent(viewModel.getValue2());
@@ -74,22 +80,34 @@ public void onBindViewHolder(ItemViewHolder holder, int position) {
holder.llValur1Root.setVisibility(View.VISIBLE);
holder.llValur2Root.setVisibility(View.GONE);
}
+
+ if (holder.linearValue1 != null &&viewModel.getRadius()!=0 ) {
+ GradientDrawable shape = new GradientDrawable();
+ shape.setCornerRadius(viewModel.getRadius());
+ shape.setColor(viewModel.getColorBar1());
+ (holder.linearValue1).setBackground(shape);
+ }
+
+ if (holder.linearValue2 != null &&viewModel.getRadius()!=0 ) {
+ GradientDrawable shape = new GradientDrawable();
+ shape.setCornerRadius(viewModel.getRadius());
+ shape.setColor(viewModel.getColorBar2());
+ (holder.linearValue2).setBackground(shape);
+ }
}
private void chanceViewParam(View view, int color) {
if (view instanceof TextView) {
((TextView) view).setTextColor(color);
- } else if (view instanceof LinearLayout) {
- (view).setBackgroundColor(color);
}
}
- private void changWidthBar(int percent, LinearLayout layout1, LinearLayout layout2) {
- LinearLayout.LayoutParams params1 = null, params2 = null;
+ private void changWidthBar(double percent, LinearLayout layout1, LinearLayout layout2) {
+ LinearLayout.LayoutParams params1, params2;
if (percent == 0) {
params1 = new LinearLayout.LayoutParams(
- 20,
+ 0,
ViewGroup.LayoutParams.MATCH_PARENT
);
@@ -104,36 +122,51 @@ private void changWidthBar(int percent, LinearLayout layout1, LinearLayout layou
params1 = new LinearLayout.LayoutParams(
0,
ViewGroup.LayoutParams.MATCH_PARENT,
- percent
+ (float) percent
);
params2 = new LinearLayout.LayoutParams(
0,
ViewGroup.LayoutParams.MATCH_PARENT,
- value - percent
+ (float) (value - percent)
);
}
+ ValueAnimator m1 = ValueAnimator.ofFloat(0.0f, (float) percent); //fromWeight, toWeight
+ m1.setDuration(400);
+ m1.setStartDelay(100); //Optional Delay
+ m1.setInterpolator(new LinearInterpolator());
+ m1.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ ((LinearLayout.LayoutParams) layout1.getLayoutParams()).weight = (float) animation.getAnimatedValue();
+ layout1.requestLayout();
+ }
+
+ });
+ m1.start();
+
+
layout1.setLayoutParams(params1);
layout2.setLayoutParams(params2);
}
- private int getPercent(Double value) {
+ private double getPercent(Double value) {
Double percent = (value / biggerValue);
Double percentmAux = (value / biggerValue) * 100;
- if (percentmAux.intValue() < 20) {
- percent = 0D;
- } else {
- percent = percent < 1 ? percent * 10 : percent;
- }
-
- return percent.intValue();
+// if (percentmAux.intValue() < 2) {
+// percent = 0D;
+// } else {
+// percent = percent < 1 ? percent * 10 : percent;
+// }
+ percent = percent < 1 ? percent * 10 : percent;
+ return percent;
}
@Override
public int getItemCount() {
- return items.size();
+ return size;
}
public BarItem getItem(int position) {
@@ -152,6 +185,7 @@ public ItemViewHolder(View view) {
txtValue1 = view.findViewById(R.id.txtValorDespesa);
txtValue2 = view.findViewById(R.id.txtValorReceita);
+
linearValue1Margin = view.findViewById(R.id.linearDespesaMargin);
linearValue1 = view.findViewById(R.id.linearDespesa);
diff --git a/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/model/BarItem.java b/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/model/BarItem.java
index 16a5f79..03dcfd7 100644
--- a/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/model/BarItem.java
+++ b/HorizontalBarGraphSample/horizontalbargraph/src/main/java/br/com/felix/horizontalbargraph/model/BarItem.java
@@ -21,6 +21,8 @@ public class BarItem {
private int textColorBar1;
private int textColorBar2;
+ private int radius = 0;
+
public BarItem(String description, Double value1, int colorBar1, int textColorBar1) {
this.setDescription(description);
this.setValue1(value1);
@@ -49,6 +51,17 @@ public BarItem(String description, Double value1, Double value2, int colorBar1,
this.setTextColorBar2(textColorBar2);
}
+
+
+ public BarItem setRadius(int radius) {
+ this.radius = radius;
+ return this;
+ }
+
+ public int getRadius() {
+ return radius;
+ }
+
public void setDescription(String description) {
this.description = description;
}