Merge pull request #3 from wajdichamakhi/Custom-Shape-Renderer
Custom shape renderer - Optimisation
This commit is contained in:
commit
b0a0af8427
4 changed files with 60 additions and 11 deletions
|
@ -188,10 +188,10 @@ public class ScatterChartActivity extends DemoBase implements OnSeekBarChangeLis
|
|||
|
||||
// create a dataset and give it a type
|
||||
ScatterDataSet set1 = new ScatterDataSet(yVals1, "DS 1");
|
||||
set1.setScatterShape(ScatterShape.getScatterShapeNames().get(ScatterShape.SQUARE));
|
||||
set1.setScatterShape(ScatterChart.ScatterShape.SQUARE);
|
||||
set1.setColor(ColorTemplate.COLORFUL_COLORS[0]);
|
||||
ScatterDataSet set2 = new ScatterDataSet(yVals2, "DS 2");
|
||||
set2.setScatterShape(ScatterShape.getScatterShapeNames().get(ScatterShape.CIRCLE));
|
||||
set2.setScatterShape(ScatterChart.ScatterShape.CIRCLE);
|
||||
set2.setScatterShapeHoleColor(ColorTemplate.COLORFUL_COLORS[3]);
|
||||
set2.setScatterShapeHoleRadius(4f);
|
||||
set2.setColor(ColorTemplate.COLORFUL_COLORS[1]);
|
||||
|
|
|
@ -11,7 +11,6 @@ import com.github.mikephil.charting.renderer.ShapeRenders.ChevronDownShapeRender
|
|||
import com.github.mikephil.charting.renderer.ShapeRenders.ChevronUpShapeRenderer;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.CircleShapeRenderer;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.CrossShapeRenderer;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.ShapeRenderer;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.SquareShapeRenderer;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.TriangleShapeRenderer;
|
||||
|
@ -38,7 +37,7 @@ public class ScatterChart extends BarLineChartBase<ScatterData> implements Scatt
|
|||
|
||||
public static void registerShapeRenderer(String scatterShapeName, ShapeRenderer shapeRenderer) {
|
||||
if (shapeRendererList == null) {
|
||||
shapeRendererList = new HashMap<>();
|
||||
initShapeRenderer();
|
||||
}
|
||||
shapeRendererList.put(scatterShapeName, shapeRenderer);
|
||||
}
|
||||
|
@ -54,16 +53,42 @@ public class ScatterChart extends BarLineChartBase<ScatterData> implements Scatt
|
|||
* Init ShapeRendererList
|
||||
*/
|
||||
private static void initShapeRenderer() {
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.SQUARE), new SquareShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.CIRCLE), new CircleShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.TRIANGLE), new TriangleShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.CROSS), new CrossShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.X), new XShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.CHEVRON_UP), new ChevronUpShapeRenderer());
|
||||
registerShapeRenderer(ScatterShape.getScatterShapeNames().get(ScatterShape.CHEVRON_DOWN), new ChevronDownShapeRenderer());
|
||||
shapeRendererList = new HashMap<>();
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.SQUARE), new SquareShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.CIRCLE), new CircleShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.TRIANGLE), new TriangleShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.CROSS), new CrossShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.X), new XShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.CHEVRON_UP), new ChevronUpShapeRenderer());
|
||||
shapeRendererList.put(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.getScatterShapeNames()
|
||||
.get(com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape.CHEVRON_DOWN), new ChevronDownShapeRenderer());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* enum that defines the shape that is drawn where the values are
|
||||
*/
|
||||
public enum ScatterShape {
|
||||
SQUARE, CIRCLE, TRIANGLE, CROSS, X,
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all possible predefined ScatterShapes.
|
||||
*
|
||||
* @return ScatterShape to array
|
||||
*/
|
||||
public static ScatterShape[] getAllPossibleShapes() {
|
||||
return new ScatterShape[] {
|
||||
ScatterShape.SQUARE, ScatterShape.CIRCLE, ScatterShape.TRIANGLE, ScatterShape.CROSS
|
||||
};
|
||||
}
|
||||
|
||||
public ScatterChart(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
package com.github.mikephil.charting.data;
|
||||
|
||||
import com.github.mikephil.charting.charts.ScatterChart;
|
||||
import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet;
|
||||
import com.github.mikephil.charting.renderer.ShapeRenders.ScatterShape;
|
||||
import com.github.mikephil.charting.utils.ColorTemplate;
|
||||
|
@ -79,6 +80,17 @@ public class ScatterDataSet extends LineScatterCandleRadarDataSet<Entry> impleme
|
|||
return mShapeSize;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the shape that is drawn on the position where the values are at.
|
||||
*
|
||||
* @param shape
|
||||
*/
|
||||
public void setScatterShape(ScatterChart.ScatterShape shape) {
|
||||
mScatterShape = shape.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the shape that is drawn on the position where the values are at.
|
||||
*
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package com.github.mikephil.charting.data.realm.implementation;
|
||||
|
||||
import com.github.mikephil.charting.charts.ScatterChart;
|
||||
import com.github.mikephil.charting.data.Entry;
|
||||
import com.github.mikephil.charting.data.realm.base.RealmLineScatterCandleRadarDataSet;
|
||||
import com.github.mikephil.charting.interfaces.datasets.IScatterDataSet;
|
||||
|
@ -80,6 +81,17 @@ public class RealmScatterDataSet<T extends RealmObject> extends RealmLineScatter
|
|||
return mShapeSize;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the shape that is drawn on the position where the values are at.
|
||||
*
|
||||
* @param shape
|
||||
*/
|
||||
public void setScatterShape(ScatterChart.ScatterShape shape) {
|
||||
mScatterShape = shape.toString();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Sets the shape that is drawn on the position where the values are at. If
|
||||
* "CUSTOM" is chosen, you need to call setCustomScatterShape(...) and
|
||||
|
|
Loading…
Add table
Reference in a new issue