Android layout 选项卡视图中的Achartengine图
我是一个初学者,正在做一些关于列表和图表的工作。 我使用的代码与achartengine示例提供的代码相同。 My launcher活动是从TabActivity派生的,其创建方法如下所示Android layout 选项卡视图中的Achartengine图,android-layout,tabs,achartengine,Android Layout,Tabs,Achartengine,我是一个初学者,正在做一些关于列表和图表的工作。 我使用的代码与achartengine示例提供的代码相同。 My launcher活动是从TabActivity派生的,其创建方法如下所示 setContentView(R.layout.tabstrip); Resources res = getResources(); // Resource object to get Drawables TabHost tabHost = getTabHost(); // The activity Tab
setContentView(R.layout.tabstrip);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
SalesBarChart myChart = new SalesBarChart();
intent = myChart.execute(this);
spec = tabHost.newTabSpec("BarChart").setIndicator("BarChart",
res.getDrawable(R.drawable.ic_tab_barchart))
.setContent(intent);
tabHost.addTab(spec);
AverageTemperatureChart myChart1 = new AverageTemperatureChart();
intent = myChart1.execute(this);
spec = tabHost.newTabSpec("albums").setIndicator("Albums",
res.getDrawable(R.drawable.ic_tab_linechart))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
我的xml文件看起来像
<TabHost
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp" />
</LinearLayout>
我在点击按钮时在startactivity(意图)中激发的相同意图可以工作,但在选项卡中不起作用。
请帮忙。提前谢谢。两周前我也有同样的问题。但我在xml层中使用了pieChart并结合了其他视图。 无论如何,我为每个选项卡和图表创建一个活动,并调用这些活动而不是图表。 在我的一项活动中,我有一个剪掉的代码:
public class FirstChartActivity extends Activity{
// other code
protected void onResume() {
super.onResume();
if (hChartView == null) { // first time pie chart is empty
renderer = buildCategoryRenderer(colors);
renderer.setLabelsTextSize(14);
categorySeries = setCategorySeries("First PieChart",
myList);
// draw pie chart with initialized values (myList and colors)
hChartView = ChartFactory.getPieChartView(this, categorySeries,
renderer);
LinearLayout layout = (LinearLayout) findViewById(R.id.pch_chart);
layout.addView(hChartView, new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
} else {
hChartView.repaint();
}
}
protected DefaultRenderer buildCategoryRenderer(int[] colors) {
DefaultRenderer renderer = new DefaultRenderer();
for (int color : colors) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(color);
renderer.addSeriesRenderer(r);
}
return renderer;
}
protected CategorySeries setCategorySeries(String chartTitle,
HashMap<String, Double> hashMap) {
CategorySeries cs = new CategorySeries(chartTitle);
Iterator<String> iter = hashMap.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Double val = hashMap.get(key);
cs.add(key, val);
}
return cs;
}
}
公共类FirstChartActivity扩展活动{
//其他代码
受保护的void onResume(){
super.onResume();
如果(hChartView==null){//第一次饼图为空
渲染器=buildCategoryRenderer(颜色);
setLabelsTextSize(14);
categorySeries=setCategorySeries(“第一个饼图”,
myList);
//使用初始化值(myList和颜色)绘制饼图
hChartView=ChartFactory.getPieChartView(此,类别系列,
渲染器);
LinearLayout布局=(LinearLayout)findViewById(R.id.pch\U图表);
layout.addView(hChartView,新LayoutParams(LayoutParams.FILL_父级,
LayoutParams.FILL_PARENT));
}否则{
hChartView.repaint();
}
}
受保护的DefaultRenderer buildCategoryRenderer(int[]颜色){
DefaultRenderer=新的DefaultRenderer();
用于(整型颜色:颜色){
SimpleSriesRender r=新的SimpleSriesRender();
r、 设置颜色(颜色);
渲染器.addSeriesRenderer(r);
}
返回渲染器;
}
受保护类别系列setCategorySeries(字符串chartTitle,
HashMap(HashMap){
CategorySeries cs=新的CategorySeries(图表标题);
迭代器iter=hashMap.keySet().Iterator();
while(iter.hasNext()){
String key=iter.next();
Double val=hashMap.get(key);
cs.add(key,val);
}
返回cs;
}
}
我希望这段代码对您有所帮助