我正在使用 MPAndroidChart 来呈现各种图表。我想添加将图表作为图像保存到图库的功能。我在操作栏中添加了一个图标以使用此功能,但图像未保存到图库中。
代码如下:
<item android:id="@+id/save"
android:icon="@drawable/ic_action_accept"
android:title="@string/save"
app:showAsAction="always"/>
Run Code Online (Sandbox Code Playgroud)
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
switch (item.getItemId()) {
case R.id.save …Run Code Online (Sandbox Code Playgroud) 我正在使用 ios-charts 来显示一个 Horizontal BarChart ,其中一个值是这样的:
var dataEntries: [BarChartDataEntry] = []
let dataEntry = BarChartDataEntry(value: self.deductible!.deductiblePaid, xIndex: 0)
dataEntries.append(dataEntry)
let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Deductible")
let chartData = BarChartData( xVals: dataPoints, dataSet: chartDataSet)
self.horizontalBarChart!.data = chartData
self.horizontalBarChart!.leftAxis.customAxisMax = 3000.0
self.horizontalBarChart!.leftAxis.startAtZeroEnabled = false
chartDataSet.colors = ChartColorTemplates.vordiplom()
Run Code Online (Sandbox Code Playgroud)
我试图为 YAxis 设置最大值,但它不影响图形。编辑:请在此处查看屏幕截图:http : //postimg.org/image/ogoj2t02f/ 我需要的是条形图应显示上限为 3000(或动态指定的数量),而不是计算出的上限。
我更改了一些代码来实现它,这是我目前所拥有的:
self.horizontalBarChart!.noDataText = "You need to provide data for the chart."
self.horizontalBarChart!.setVisibleYRangeMaximum(3000, axis: ChartYAxis.AxisDependency.Left)
self.horizontalBarChart!.descriptionText = ""
var dataEntries: [BarChartDataEntry] = []
let dataEntry = BarChartDataEntry(value: …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我使用 MPAndroidChart 需要饼图,但是在 Piedata 构造函数中添加数据时出错,请帮助。使用依赖编译 'com.github.PhilJay:MPAndroidChart:v3.0.0 beta'
imageView=(PieChart) v.findViewById(R.id.result_text);
ArrayList<Entry> entries = new ArrayList<>();
entries.add(new Entry(4f, 0));
entries.add(new Entry(8f, 1));
entries.add(new Entry(6f, 2));
entries.add(new Entry(12f, 3));
entries.add(new Entry(18f, 4));
entries.add(new Entry(9f, 5));
PieDataSet dataset = new PieDataSet(entries,"uyggh");
ArrayList<Object> labels = new ArrayList<Object>();
labels.add("January");
labels.add("February");
labels.add("March");
labels.add("April");
labels.add("May");
labels.add("June");
PieData data = new PieData(labels, dataset);//getting error here
imageView.setData(data);
imageView.setDescription("Description");
Run Code Online (Sandbox Code Playgroud) 使用类似于此问题的答案的内容,我尝试在用户在特定项目上滑动时禁用 ViewPager 滑动操作。有问题的视图是来自MPAndroidChart库的可滚动图表,所以自然我不希望视图分页器干扰图表的滚动。
我遇到的问题是,在我想要的视图上调用 onTouchListener 之前,ViewPager 通常会调用“onInterceptTouch”。
在这段代码中,我在按下/未按下视图时进行录制:
private long lastDown;
private long lastUp;
...
public void foo(){
barChart.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
System.out.println("AAA");
if(event.getAction() == MotionEvent.ACTION_DOWN){
lastDown = System.currentTimeMillis();
}else if(event.getAction() == MotionEvent.ACTION_UP){
lastUp = System.currentTimeMillis();
}
return false;
}
});
}
Run Code Online (Sandbox Code Playgroud)
在这段代码中,我确定是否选择了视图:
public boolean isGraphTouched(){
return lastDown > lastUp;
}
Run Code Online (Sandbox Code Playgroud)
在这一段代码中,我覆盖了 onInterceptTouchEvent 方法:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
System.out.println("BBB");
return isGraphSelected() ? super.onInterceptTouchEvent(ev) : false;
}
Run Code Online (Sandbox Code Playgroud)
如果您注意打印行,则 …
我们如何才能Synchronized charts在Android.
对于我的网页,我使用了HighchartsAPI。Android有没有类似的东西。我检查了这里提到的各种库,但没有找到符合要求的库。
是否有任何图书馆可以满足要求或者我应该去吗webView(这对我来说是最糟糕的情况)
有可能MPAndroidChart吗?
编辑:
结果图表应该类似于highcharts页面中给出的图表
样品:
更新
座右铭不仅仅是绘制3张图表。目的是同步它们。同步意味着所有 3 个图表都具有相同的 x 轴(值),单击这些图表中的任何点时,该特定点的图应在所有图表中突出显示。我确定我没有正确解释它。请检查此链接并悬停图表
In CombinedChartby 添加chart.setFitBars(true)将使第一个和最后一个条形可见。
我需要为将 LineChart 与 BarChart 结合起来做同样的事情。
现在,第一条和最后一条不完全可见。
我试过了
xAxis.setAxisMaximum(data.getXMax() + 1f);
Run Code Online (Sandbox Code Playgroud)
X-Axis向右侧延伸,以便最后一个酒吧获得足够的空间。这成功了。
但是我应该为左侧栏做什么?
setAxisMinimum没有帮助。
添加后setAxisMaximum:
编辑
我已经提到了这个, 但它只为BarChart.
我有一个LineChart使用 MPAndroidChart 创建的。我已经OnChartValueSelectedListener为这个图表设置了一个,到目前为止一切正常。onValueSelected如果我点击图表上的任何地方,就会调用该函数。只有在点击图表内的圆圈(值点)时才会调用它。
我为此尝试了很多选择,但没有运气。
谁能向我解释如何解决这个问题?
我正在实现一项功能,用于显示财产的收入/费用,还提供了1个月,3个月,6个月和12个月的筛选器。
因此,我必须根据选择的过滤器显示“月”标签,例如,如果选择“ 3个月”过滤器,则需要显示“三月”,“二月”和“一月”,但当前未在XAxis上显示什么标签。
这是我的代码,请纠正任何问题:
private void setChart() {
ArrayList<BarEntry> incomeEntries = getIncomeEntries();
ArrayList<BarEntry> expenseEntries = getExpenseEntries();
BarDataSet set1, set2;
set1 = new BarDataSet(incomeEntries, "Income");
set1.setColor(Color.rgb(65, 168, 121));
set1.setValueTextColor(Color.rgb(55, 70, 73));
set1.setValueTextSize(10f);
set2 = new BarDataSet(expenseEntries, "Expense");
set2.setColors(Color.rgb(241, 107, 72));
set2.setValueTextColor(Color.rgb(55, 70, 73));
set2.setValueTextSize(10f);
ArrayList<IBarDataSet> dataSets = new ArrayList<>();
dataSets.add(set1);
dataSets.add(set2);
BarData data = new BarData(dataSets);
barChart.setData(data);
barChart.getDescription().setEnabled(false);
barChart.setDrawBarShadow(false);
barChart.setDrawValueAboveBar(true);
barChart.setMaxVisibleValueCount(10);
barChart.setPinchZoom(false);
barChart.setDrawGridBackground(false);
barChart.animateY(1400, Easing.EaseInOutQuad);
barChart.animateXY(3000, 3000);
Legend l = barChart.getLegend();
l.setWordWrapEnabled(true);
l.setTextSize(14);
l.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);
l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
l.setOrientation(Legend.LegendOrientation.HORIZONTAL);
l.setDrawInside(false);
l.setForm(Legend.LegendForm.CIRCLE);
XAxis xAxis = …Run Code Online (Sandbox Code Playgroud) mpandroidchart ×10
android ×8
charts ×4
bar-chart ×1
graph ×1
highcharts ×1
ios ×1
ios-charts ×1
java ×1
pie-chart ×1
save-image ×1
swift ×1