显示列表视图使用Adpater aChartengine [英] Displaying aChartengine using Listview Adpater
问题描述
我想显示使用自定义适配器,它是在没有任何错误执行一个ListView里面aChartengine饼图但不显示图表..please帮助。
我有一个方法openChart()..这是创建图表,并返回查看,我通过支架上的获取视图正在设置。结果
code
公共查看getView(INT位置,查看convertView,ViewGroup中ARG2){.....convertView = mInflater.inflate(R.layout.chart,NULL);
holder.vw =(ViewGroup中)convertView.findViewById(id.chart_container);
//Log.w(\"In视图,);
holder.vw.addView(openChart());
convertView.setTag(保持器);
}
其他{ 支架=(座)convertView.getTag();
}
返回convertView;
}....
私人查看openChart(){
//饼图节名
的String [] code =新的String [] {
巧克力慕斯蛋糕&安培;老年,升级Froyo,姜饼,蜂窝,
冰淇淋三明治,果冻豆
}; //饼图分割点
双[] =分布{3.9,12.9,55.8,1.9,23.7,1.8}; //每个饼图部分颜色
INT [] =颜色{Color.BLUE,Color.MAGENTA,Color.GREEN,Color.CYAN,Color.RED,
Color.YELLOW}; //实例化CategorySeries绘制饼图
CategorySeries distributionSeries =新CategorySeries(饼);
的for(int i = 0; I< distribution.length;我++){
//添加具有它的价值和名字切片饼图
distributionSeries.add(code [I]中,分配由[i]);
} //实例化的饼图渲染器
DefaultRenderer defaultRenderer =新DefaultRenderer();
的for(int i = 0; I< distribution.length;我++){
SimpleSeriesRenderer seriesRenderer =新SimpleSeriesRenderer();
seriesRenderer.setColor(颜色[I]);
seriesRenderer.setDisplayChartValues(真);
//添加渲染器片
defaultRenderer.addSeriesRenderer(seriesRenderer);
} defaultRenderer.setChartTitle(Android版本分布于2012年10月1日);
defaultRenderer.setChartTitleTextSize(20);
defaultRenderer.setZoomButtonsVisible(真);
defaultRenderer.setBackgroundColor(Color.GRAY);
defaultRenderer.setDisplayValues(真);
//前往在MainActivity布局的LinearLayout参考
//的LinearLayout chartContainer =(的LinearLayout)findViewById(R.id.chart_container);
//创建一个折线图
mChart = ChartFactory.getPieChartView(mContext,distributionSeries,defaultRenderer); //添加折线图到的LinearLayout
//chartContainer.addView(mChart); //使用的数据集和multipleRenderer创建意图情节条形图
//意图意图= ChartFactory.getPieChartIntent(getBaseContext(),distributionSeries,defaultRendererAChartEnginePieChartDemo); //开始活动
// startActivity(意向);
Log.w(中图,mChart.toString()+);
返回mChart; }
我经历了同样的问题了前一阵子。在我来说,我不得不放弃图形视图一个固定的高度。
你也可以给固定高度的图形视图的父母一方,然后用 match_parent
或 WRAP_CONTENT
在图形视图。
请参阅我的XML:
< RelativeLayout的
的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =match_parent
机器人:layout_height =88dp> <的LinearLayout
机器人:ID =@ + ID /暗算
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:方向=垂直
机器人:layout_marginLeft =@扪/ list_item_margin
机器人:layout_marginRight =@扪/ list_item_margin
机器人:layout_alignBottom =@ ID /图像
机器人:layout_alignTop =@ ID /图像
机器人:layout_toRightOf =@ ID /图片/> <! - 其他视图... - >< / RelativeLayout的>
这可能是因为做的ListView要尽量减少其项目的高度。如果这是真的,你的图在那里,但它的高度是零。
I am trying to display aChartengine pie chart inside a listview using a custom adapter , it is executing without any error but not displaying chart ..please help.
I have a method openChart()..which is creating chart and returning view which i am setting in the get view through holder.
code
public View getView(int position, View convertView, ViewGroup arg2) {
.....
convertView = mInflater.inflate(R.layout.chart,null);
holder.vw=(ViewGroup) convertView.findViewById(id.chart_container);
//Log.w("In View", );
holder.vw.addView(openChart());
convertView.setTag(holder);
}
else {
holder = (Holder) convertView.getTag();
}
return convertView;
}
....
private View openChart(){
// Pie Chart Section Names
String[] code = new String[] {
"Eclair & Older", "Froyo", "Gingerbread", "Honeycomb",
"IceCream Sandwich", "Jelly Bean"
};
// Pie Chart Section Value
double[] distribution = { 3.9, 12.9, 55.8, 1.9, 23.7, 1.8 } ;
// Color of each Pie Chart Sections
int[] colors = { Color.BLUE, Color.MAGENTA, Color.GREEN, Color.CYAN, Color.RED,
Color.YELLOW };
// Instantiating CategorySeries to plot Pie Chart
CategorySeries distributionSeries = new CategorySeries("PIe");
for(int i=0 ;i < distribution.length;i++){
// Adding a slice with its values and name to the Pie Chart
distributionSeries.add(code[i], distribution[i]);
}
// Instantiating a renderer for the Pie Chart
DefaultRenderer defaultRenderer = new DefaultRenderer();
for(int i = 0 ;i<distribution.length;i++){
SimpleSeriesRenderer seriesRenderer = new SimpleSeriesRenderer();
seriesRenderer.setColor(colors[i]);
seriesRenderer.setDisplayChartValues(true);
// Adding a renderer for a slice
defaultRenderer.addSeriesRenderer(seriesRenderer);
}
defaultRenderer.setChartTitle("Android version distribution as on October 1, 2012 ");
defaultRenderer.setChartTitleTextSize(20);
defaultRenderer.setZoomButtonsVisible(true);
defaultRenderer.setBackgroundColor(Color.GRAY);
defaultRenderer.setDisplayValues(true);
// Getting a reference to LinearLayout of the MainActivity Layout
//LinearLayout chartContainer = (LinearLayout) findViewById(R.id.chart_container);
// Creating a Line Chart
mChart = ChartFactory.getPieChartView(mContext, distributionSeries , defaultRenderer);
// Adding the Line Chart to the LinearLayout
//chartContainer.addView(mChart);
// Creating an intent to plot bar chart using dataset and multipleRenderer
// Intent intent = ChartFactory.getPieChartIntent(getBaseContext(), distributionSeries , defaultRenderer, "AChartEnginePieChartDemo");
// Start Activity
// startActivity(intent);
Log.w("In Chart", mChart.toString() +"");
return mChart;
}
I went through the same issue a while ago. In my case I had to give the graph view a fixed height.
You can also give fixed height to one of the graph view's parents and then use match_parent
or wrap_content
on the graph view.
See my xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="88dp">
<LinearLayout
android:id="@+id/plot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginLeft="@dimen/list_item_margin"
android:layout_marginRight="@dimen/list_item_margin"
android:layout_alignBottom="@id/image"
android:layout_alignTop="@id/image"
android:layout_toRightOf="@id/image"/>
<!-- other views... -->
</RelativeLayout>
This is probably done because ListView wants to minimize the height of its items. If this is true, your graph was there, but its height was zero.
这篇关于显示列表视图使用Adpater aChartengine的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!