有人可以帮我编写android中的条形码吗?
我尝试运行http://code.google.com/p/achartengine/
的示例代码但该样本太大,无法从中检索条形码示例。 任何人都可以建议我任何好的网站或文档,其中包含在android中编码图形的详细信息吗?我需要在频繁的间隔后显示图表中的变化。
以前有人帮我试过这个吗?
答案 0 :(得分:1)
在SO上有很多图形库线程,你应该看看它们并尝试不同的。
就我个人而言,我建议使用Steemas库 - 他们有很多创建图形库的经验,这些库肯定会在API中显示出来。评估版可以在这里找到:
http://www.steema.com/download/mobile
如果你想用Steemas库创建一个条形图,这是一个非常简单的例子:
import android.app.Activity;
import android.os.Bundle;
import com.steema.teechart.TChart;
import com.steema.teechart.styles.Bar;
public class ExampleActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TChart chart = new TChart(this);
Bar exampleBar = new Bar();
double[] exampleValues = {1,5,8,2.5,-3.3,10.75};
exampleBar.add(exampleValues);
chart.addSeries(exampleBar);
setContentView(chart);
}
}
我使用该库得到的一些观察结果:
TeeChart info:
Disable 3D: chart.getAspect().setView3D(false);
Disable Legend: chart.getLegend().setVisible(false);
Disable footer: chart.getFooter().setVisible(false);
Disable header: chart.getHeader().setVisible(false);
How to set marks to data value instead of cylinder number?
For a Bar data-set: bar.getMarks().setStyle(MarksStyle.VALUE);
How to move the marks closer to the chart rectangle?
bar.getMarks().setArrowLength(5); - or negative values to put them on top of the bar
Different styles:
bar.setBarStyle(BarStyle.RECTANGLE);
How do I make the lines thicker in a graph?
line.getLinePen().setWidth(5); works, but it will change the width of the Legend as well.
How do I change the color of labels on axes?
chart.getAxes().getLeft().getLabels().getFont().setColor(Color.WHITE);
chart.getAxes().getBottom().getLabels().getFont().setColor(Color.WHITE);
SOLVED WORKAROUND - How do I set the background color of the chart itself? Tried so far (the TChart methods that take a Color from the TChart Color class, not the View methods) - only managed to make the 'surrounding' area black.
chart.setBackground(Color.BLACK);
chart.getCanvas().setBackColor(Color.BLACK);
chart.getGraphics3D().setBackColor(Color.BLACK);
---> WORKAROUND: Use the setBackground above, then use: chart.getWalls().getBack().setVisible(false); --- setColor() on walls is bugged?
How to choose the bounds of a chart manually?
chart.getAxes().getLeft().setAutomatic(false);
chart.getAxes().getLeft().setMinMax(-2, 2);
答案 1 :(得分:1)
here Source Code For any Chart in android和
link 2
AChartEngine是Android应用程序的图表库。它目前支持以下图表类型:
组合(线,立方线,散点图,条形图,范围条,气泡的任意组合)图表 立方线图
答案 2 :(得分:1)
浏览This Click Here并享受代码,希望它能为您提供帮助。
答案 3 :(得分:0)
对于简单条形图您可以使用此代码可能会解决您的问题
首先在lib文件夹中添加achartengine-1.1.0.jar
然后你在清单
中声明<activity android:name="org.achartengine.GraphicalActivity"/>
创建课程:
package com.example.barchartexample;
import java.net.Proxy.Type;
import org.achartengine.ChartFactory;
import org.achartengine.model.CategorySeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
public class BarGraph {
public Intent getIntent(Context context){
int y[]={25,10,15,20};
CategorySeries series= new CategorySeries("BAR 1");
for (int i = 0; i < y.length; i++) {
series.add("Bar"+(i+1),y[i]);
}
XYMultipleSeriesDataset dataset= new XYMultipleSeriesDataset();
dataset.addSeries(series.toXYSeries());
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setColor(Color.RED);
renderer.setDisplayChartValues(true);
renderer.setChartValuesSpacing((float) 5.5d);
renderer.setLineWidth((float) 10.5d);
XYMultipleSeriesRenderer mRenderer= new XYMultipleSeriesRenderer();
mRenderer.addSeriesRenderer(renderer);
mRenderer.setChartTitle("Simple Chart");
mRenderer.setYTitle("Rupee");
mRenderer.setZoomButtonsVisible(true);
mRenderer.setShowGrid(true);
mRenderer.setBarSpacing(.5);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(Color.BLACK);
mRenderer.setXAxisMin(0);
mRenderer.setXAxisMax(5);
mRenderer.setYAxisMax(50);
mRenderer.setXLabels(0);
mRenderer.addXTextLabel(1,"Income");
mRenderer.addXTextLabel(2,"Saving");
mRenderer.addXTextLabel(3,"Expenditure");
mRenderer.addXTextLabel(4,"NetIncome");
mRenderer.setPanEnabled(true,true);
Intent intent = ChartFactory.getBarChartIntent(context, dataset, mRenderer,org.achartengine.chart.BarChart.Type.DEFAULT);
return intent;
}
}
package com.example.barchartexample;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
Button but;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
but=(Button)findViewById(R.id.BarGraph);
but.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
BarGraph bar = new BarGraph();
Intent barIntent= bar.getIntent(MainActivity.this);
startActivity(barIntent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 4 :(得分:0)
如果你想要一个最小的图表库我建议这个(这个版本是Daniel Nadeau的图书馆的一个分支):https://github.com/Androguide/HoloGraphLibrary。它使用起来非常简单。