导航:首页 > 操作系统 > android饼图

android饼图

发布时间:2022-04-21 18:29:07

android 饼形图的百分比和大于100%怎么优化

应该是布局方面的问题吧,在xml文件的ImageView有个scaleType属性应该可以解决你的问题 android:scaleType是控制图片如何resized/moved来匹对ImageView的size。 ImageView.ScaleType / android:scaleType值的意义区别: CENTER /center 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 CENTER_CROP / centerCrop 按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽) CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 FIT_CENTER / fitCenter 把图片按比例扩大/缩小到View的宽度,居中显示 FIT_END / fitEnd 把图片按比例扩大/缩小到View的宽度,显示在View的下部分...

㈡ android饼状图是如何实现的

axure实现粗略饼状图 今天画原型的时候想展现一个饼状图,axure6.5.0没有自带的,导入的外部库也没有。想起来几天前看过的一个视频培训:http://v.youku.com/v_show/id_XMjUxMjYyNjE2.html,里面在61:50左右讲到一个切割图片的用法,既然图片可以切割,那可以

㈢ 如何在android画分析图(例如 柱状图、趋势图、饼图)

目前android上图标引擎并不少见,像aChartEngine就能很好的完成绘图:

aChartEngine支持:1、linechart(折线图)2、areachart(面积图;分区图,对比图)3、scatterchart(散点图)4、timechart(时间图;进度表)5、barchart(条形图;柱状图)6、piechart(饼图)7、bubblechart(气泡图)8、doughnutchart(圆环图)9、range(high-low)barchart(范围条形图)10、dialchart/gauge(拨号盘/压力表)11、combined(anycombinationofline,cubicline,scatter,bar,rangebar,bubble)chart(组合图)12、cubiclinechart(立方折线图)

上述所有支持的图表类型,都可以包含多个系列,都支持水平(默认)或垂直方式展示图表,并且支持许多其他的自定义功能。所有图表都可以建立为一个view,也可以建立为一个用于启动activity的intent.

下面是一个饼状图的源码事例:

package org.achartengine.chartdemo.demo.chart;


import org.achartengine.ChartFactory;

import org.achartengine.renderer.DefaultRenderer;


import android.content.Context;

import android.content.Intent;

import android.graphics.Color;


public class BudgetPieChart extends AbstractDemoChart {

public String getName() {

return "Budget chart";

}


public String getDesc() {

return "The budget per project for this year (pie chart)";

}

public Intent execute(Context context) {

double[] values = new double[] { 12, 14, 11, 10, 19 };//饼图分层5块,每块代表的数值

int[] colors = new int[] { Color.BLUE, Color.GREEN, Color.MAGENTA, Color.YELLOW, Color.CYAN };//每块饼图的颜色

DefaultRenderer renderer = buildCategoryRenderer(colors);

renderer.setZoomButtonsVisible(true);//设置显示放大缩小按钮

renderer.setZoomEnabled(true);//设置允许放大缩小.

renderer.setChartTitleTextSize(20);//设置图表标题的文字大小

return ChartFactory.getPieChartIntent(context, buildCategoryDataset("Project budget", values),

renderer, "Budget");//构建Intent, buildCategoryDataset是调用AbstraDemoChart的构建方法.

}


}

㈣ Android图表设计如图,各位请问如何实现呢

两个表格很容易实现吧,表头单独写,表格用listview,线图可以用Chartengine,这是一个开源的库,很容易就能实现上面的效果。

㈤ 如何解决,小程序里echarts画的饼图在安卓手机上效果不正常

是手机内存太小了,要么就恢复出厂设置试一下,要不然就换个大内存的手机好了。先先把出了问题的软件先删除或卸载。接着,我们到网上下载手机杀毒软件,下载安装好以后,我们打开软件,软件会对手机进行检测,检测完之后,软件会询问是否进行修复,或者病毒的查杀,选择修复即可。正常情况下病毒或木马都会被消灭,如果问题还没有解决,那只能去刷机了。如果发手机有中病毒的现象,我们首先先把出了问题的软件先删除或卸载。市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾,导致手机运行不畅通应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾,导致手机运行不畅通应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾?
是手机内存太小了,要么就恢复出厂设置试一下,要不然就换个大内存的手机好了。先先把出了问题的软件先删除或卸载。接着,我们到网上下载手机杀毒软件,下载安装好以后,我们打开软件,软件会对手机进行检测,检测完之后,软件会询问是否进行修复,或者病毒的查杀,选择修复即可。正常情况下病毒或木马都会被消灭,如果问题还没有解决,那只能去刷机了。如果发手机有中病毒的现象,我们首先先把出了问题的软件先删除或卸载。市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾,导致手机运行不畅通应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾,导致手机运行不畅通应用市场软件崩溃,一般跟手机系统有关系的,建议升级手机系统,升级系统不能解决的话,就重启手机试试,由于手机长时间运行有缓存垃圾?

㈥ 如何在android studio 中实现圆饼图的转动

/**
* 随手记中可以任意旋转的炫酷饼图的实现原理
*
* 小记:
* 在实现的过程中,主要是用到了一些数学计算来实现角度和屏幕位置坐标的计算
* 关于任意两个点之间的角度计算的问题,一开始想了很久没有结果,最后,一个偶然的灵光,让整个
* 事情变得简单起来,就是计算任意两个点相对于中心坐标的角度的时候,首先,计算
* 每个点相对于x轴正方向的角度,这样,总可以将其转化为计算直角三角形的内角计算问题
* 再将两次计算的角度进行减法运算,就实现了。是不是很简单?呵呵,对于像我们这样数学
* 没有学好的开发者来说,也只有这样化难为简了
*
* @author liner
*
*/
public class PieChart extends View{
public static final String TAG = "PieChart";
public static final int ALPHA = 100;
public static final int ANIMATION_DURATION = 800;
public static final int ANIMATION_STATE_RUNNING = 1;
public static final int ANIMATION_STATE_DOWN = 2;
/**
* 不要问我这个值是怎么设置的。这个就是图片中的一大块圆形区域对应的长方形四个边的坐标位置
* 具体的值,自己需要多次尝试并调整了。这样,我们的饼图就是相对于这个区域来画的
*/
private static final RectF OVAL = new RectF(18,49,303,340);
private int[] colors; //每部分的颜色值
private int[] values; //每部分的大小
private int[] degrees; //值转换成角度
private String[] titles; //每部分的内容
private Paint paint;
private Paint maskPaint;
private Paint textPaint;
private Point lastEventPoint;
private int currentTargetIndex = -1;
private Point center; //这个是饼图的中心位置
private int eventRadius = 0; //事件距离饼图中心的距离
//测试的时候使用的
//private ChartClickListener clickListener;
private Bitmap mask; //用于遮罩的Bitmap
private int startDegree = 90; //让初始的时候,圆饼是从箭头位置开始画出的
private int animState = ANIMATION_STATE_DOWN;
private boolean animEnabled = false;
private long animStartTime;
public PieChart(Context context) {
super(context);
init();
}
public PieChart(Context context, AttributeSet attrs){
this(context, attrs, 0);
}
public PieChart(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
init();
}
private void init(){
paint = new Paint();
maskPaint = new Paint();
textPaint = new Paint();
textPaint.setColor(Color.WHITE);
textPaint.setTypeface(Typeface.DEFAULT_BOLD);
textPaint.setAlpha(100);
textPaint.setTextSize(16);
values = new int[]{
60,
90,
30,
50,
70
};
//titles = new String[]{
//"川菜",
//"徽菜",
//"粤菜",
//"闽菜",
//"湘菜"
//};
//测试文字居中显示
titles = new String[]{
"我是三岁",
"说了算四大皆空",
"士大",
"史蒂芬森地",
"湘"
};
colors = new int[]{
Color.argb(ALPHA, 249, 64, 64),
Color.argb(ALPHA, 0, 255, 0),
Color.argb(ALPHA, 255, 0, 255),
Color.argb(ALPHA, 255, 255, 0),
Color.argb(ALPHA, 0, 255, 255)
};
degrees = getDegrees();
//Drawable d = getResources().getDrawable(R.drawable.mask);
mask = BitmapFactory.decodeResource(getResources(), R.drawable.mask);
//获取初始位置的时候,下方箭头所在的区域
animEnabled = true; //同时,启动动画
}
//public void setChartClickListener(ChartClickListener l){
//this.clickListener = l;
//}
//计算总和
private int sum(int[] values){
int sum = 0;
for(int i=0; i<values.length;i++){
sum += values[i];
}
return sum;
}
/**
* 根据每部分所占的比例,来计算每个区域在整个圆中所占的角度
* 但是,有个小细节,就是计算的时候注意,可能并不能整除的情况,这个时候,为了
* 避免所有的角度和小于360度的情况,姑且将剩余的部分送给某个部分,反正也不影响
* @return
*/
private int[] getDegrees(){
int sum = this.sum(values);
int[] degrees = new int[values.length];
for(int i=0; i<values.length; i++){
degrees[i] = (int)Math.floor((double)((double)values[i]/(double)sum)*360);
//Log.v("Angle", angles[i]+"");
}
int angleSum = this.sum(degrees);
if(angleSum != 360){
//上面的计算可能导致和小于360
int c = 360 - angleSum;
degrees[values.length-1] += c; //姑且让最后一个的值稍大点
}
return degrees;
}
/**
* 重写这个方法来画出整个界面
*/
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(animEnabled){
/**
* 说明是启动的时候,需要旋转着画出饼图
*/
Log.e(TAG, "anim enabled");
if(animState == ANIMATION_STATE_DOWN){
animStartTime = SystemClock.uptimeMillis();
animState = ANIMATION_STATE_RUNNING;

}

final long currentTimeDiff = SystemClock.uptimeMillis() - animStartTime;
int currentMaxDegree = (int)((float)currentTimeDiff/ANIMATION_DURATION*360f);
Log.e(TAG, "当前最大的度数为:"+currentMaxDegree);
if(currentMaxDegree >= 360){
//动画结束状态,停止绘制
currentMaxDegree = 360;
animState = ANIMATION_STATE_DOWN;
animEnabled = false;
}
int[] degrees = getDegrees();
int startAngle = this.startDegree;

//获取当前时刻最大可以旋转的角度所位于的区域
int maxIndex = getEventPart(currentMaxDegree);

//根据不同的颜色画饼图
for(int i=0; i<= maxIndex; i++){
int currentDegree = degrees[i];

if(i== maxIndex){
//对于当前最后一个绘制区域,可能只是一部分,需要获取其偏移量
currentDegree = getOffsetOfPartStart(currentMaxDegree, maxIndex);
}

if(i > 0){
//注意,每次画饼图,记得计算startAngle
startAngle += degrees[i-1];
}

paint.setColor(colors[i]);
canvas.drawArc(OVAL, startAngle, currentDegree, true, paint);
}

if(animState == ANIMATION_STATE_DOWN){
//如果动画结束了,则调整当前箭头位于所在区域的中心方向
onStop();

}else{
postInvalidate();
}

}else{
int[] degrees = getDegrees();
int startAngle = this.startDegree;

/**
* 每个区域的颜色不同,但是这里只要控制好每个区域的角度就可以了,整个是个圆
*/
for(int i=0; i<values.length; i++){
paint.setColor(colors[i]);
if(i>0){
startAngle += degrees[i-1];
}
canvas.drawArc(OVAL, startAngle, degrees[i], true, paint);
}
}


/**
* 画出饼图之后,画遮罩图片,这样图片就位于饼图之上了,形成了遮罩的效果
*/
canvas.drawBitmap(mask, 0, 0, maskPaint);

/**
* 根据当前计算得到的箭头所在区域显示该区域代表的信息
*/
if(currentTargetIndex >= 0){
String title = titles[currentTargetIndex];
textPaint.setColor(colors[currentTargetIndex]);
//简单作个计算,让文字居中显示
int width = title.length()*17;
canvas.drawText(title, 157-width/2+3, 383, textPaint);
}
}

/**
* 处理饼图的转动
*/
public boolean onTouchEvent(MotionEvent event){

if(animEnabled && animState == ANIMATION_STATE_RUNNING){
return super.onTouchEvent(event);
}

Point eventPoint = getEventAbsoluteLocation(event);
computeCenter(); //计算中心坐标

//计算当前位置相对于x轴正方向的角度
//在下面这个方法中计算了eventRadius的
int newAngle = getEventAngle(eventPoint, center);

int action = event.getAction();

switch (action) {
case MotionEvent.ACTION_DOWN:
lastEventPoint = eventPoint;
if(eventRadius > getRadius()){
/**
* 只有点在饼图内部才需要处理转动,否则直接返回
*/
Log.e(TAG, "当前位置超出了半径:"+eventRadius+">"+getRadius());
return super.onTouchEvent(event);
}
break;
case MotionEvent.ACTION_MOVE:
//这里处理滑动
rotate(eventPoint, newAngle);
//处理之后,记得更新lastEventPoint
lastEventPoint = eventPoint;
break;
case MotionEvent.ACTION_UP:
onStop();
break;
default:
break;
}

return true;
}

/**
* 当我们停止旋转的时候,如果当前下方箭头位于某个区域的非中心位置,则我们需要计算
* 偏移量,并且将箭头指向中心位置
*/
private void onStop() {
int targetAngle = getTargetDegree();
currentTargetIndex = getEventPart(targetAngle);
int offset = getOffsetOfPartCenter(targetAngle, currentTargetIndex);
/**
* offset>0,说明当前箭头位于中心位置右边,则所有区域沿着顺时针旋转offset大小的角度
* offset<0,正好相反
*/
startDegree += offset;
postInvalidateDelayed(200);
}
private void rotate(Point eventPoint, int newDegree) {
//计算上一个位置相对于x轴正方向的角度
int lastDegree = getEventAngle(lastEventPoint, center);

/**
* 其实转动就是不断的更新画圆弧时候的起始角度,这样,每次从新的起始角度重画圆弧就形成了转动的效果
*/
startDegree += newDegree-lastDegree;

//转多圈的时候,限定startAngle始终在-360-360度之间
if(startDegree >= 360){
startDegree -= 360;
}else if(startDegree <= -360){
startDegree += 360;
}

Log.e(TAG, "当前startAngle:"+startDegree);

//获取当前下方箭头所在的区域,这样在onDraw的时候就会转到不同区域显示的是当前区域对应的信息
int targetDegree = getTargetDegree();
currentTargetIndex = getEventPart(targetDegree);

//请求重新绘制界面,调用onDraw方法
postInvalidate();
}


/**
* 获取当前事件event相对于屏幕的坐标
* @param event
* @return
*/
protected Point getEventAbsoluteLocation(MotionEvent event){
int[] location = new int[2];
this.getLocationOnScreen(location); //当前控件在屏幕上的位置

int x = (int)event.getX();
int y = (int)event.getY();

x += location[0];
y += location[1]; //这样x,y就代表当前事件相对于整个屏幕的坐标

Point p = new Point(x, y);

Log.v(TAG, "事件坐标:"+p.toString());

return p;
}
/**
* 获取当前饼图的中心坐标,相对于屏幕左上角
*/
protected void computeCenter(){
if(center == null){
int x = (int)OVAL.left + (int)((OVAL.right-OVAL.left)/2f);
int y = (int)OVAL.top + (int)((OVAL.bottom - OVAL.top)/2f)+50; //状态栏的高度是50
center = new Point(x,y);
//Log.v(TAG, "中心坐标:"+center.toString());
}
}
/**
* 获取半径
*/
protected int getRadius(){
int radius = (int)((OVAL.right-OVAL.left)/2f);
//Log.v(TAG, "半径:"+radius);
return radius;
}
/**
* 获取事件坐标相对于饼图的中心x轴正方向的角度
* 这里就是坐标系的转换,本例中使用饼图的中心作为坐标中心,就是我们从初中到大学一直使用的"正常"坐标系。
* 但是涉及到圆的转动,本例中一律相对于x正方向顺时针来计算某个事件在坐标系中的位置
* @param eventPoint
* @param center
* @return
*/
protected int getEventAngle(Point eventPoint, Point center){
int x = eventPoint.x - center.x;//x轴方向的偏移量
int y = eventPoint.y - center.y; //y轴方向的偏移量
//Log.v(TAG, "直角三角形两直边长度:"+x+","+y);
double z = Math.hypot(Math.abs(x), Math.abs(y)); //求直角三角形斜边的长度
//Log.v(TAG, "斜边长度:"+z);
eventRadius = (int)z;
double sinA = (double)Math.abs(y)/z;
//Log.v(TAG, "sinA="+sinA);
double asin = Math.asin(sinA); //求反正玄,得到当前点和x轴的角度,是最小的那个
//Log.v(TAG, "当前相对偏移角度的反正弦:"+asin);
int degree = (int)(asin/3.14f*180f);
//Log.v(TAG, "当前相对偏移角度:"+angle);
//下面就需要根据x,y的正负,来判断当前点和x轴的正方向的夹角
int realDegree = 0;
if(x<=0 && y<=0){
//左上方,返回180+angle
realDegree = 180+degree;
}else if(x>=0 && y<=0){
//右上方,返回360-angle
realDegree = 360-degree;
}else if(x<=0 && y>=0){
//左下方,返回180-angle
realDegree = 180-degree;
}else{
//右下方,直接返回
realDegree = degree;
}
//Log.v(TAG, "当前事件相对于中心坐标x轴正方形的顺时针偏移角度为:"+realAngle);
return realDegree;
}
/**
* 获取当前下方箭头位置相对于startDegree的角度值
* 注意,下方箭头相对于x轴正方向是90度
* @return
*/
protected int getTargetDegree(){
int targetDegree = -1;
int tmpStart = startDegree;
/**
* 如果当前startAngle为负数,则直接+360,转换为正值
*/
if(tmpStart < 0){
tmpStart += 360;
}
if(tmpStart < 90){
/**
* 如果startAngle小于90度(可能为负数)
*/
targetDegree = 90 - tmpStart;
}else{
/**
* 如果startAngle大于90,由于在每次计算startAngle的时候,限定了其最大为360度,所以
* 直接可以按照如下公式计算
*/
targetDegree = 360 + 90 - tmpStart;
部分代码 网络知道限制字数 下载附件查看

㈦ 绘制android图表有几种框架

AChartEngine(简称ACE)是Google的一个开源图表库(for Android)。它功能强大,支持散点图、折线图、饼图、气泡图、柱状图、短棒图、仪表图等多种图表。

㈧ 在android里面如何绘制一个有颜色的饼状图,饼状图的扇形区域根据输入的数字进行变化 图如下

参考答案 铁杵能磨成针,但木杵只能磨成牙签,材料不对,再努力也没用。

㈨ android饼状图内是空心的怎么做

先定义一个GraphicalView

GraphicalView graphicalView;
然后,从chartfactory获取

graphicalView=ChartFactory.getBarChartView(getBaseContext(), dataset, renderer, type);//柱状图
graphicalView=ChartFactory.getPieChartView(getBaseContext(), dataset, renderer);//饼状图
其中的dataset表示数据源,renderer表示渲染参数,type表示类型

设置dataset的方法--饼图

double[] values={412.0,542.0,486.0,900.1};
CategorySeries dataset=buildCategoryDataset("测试饼图", values);

1 protected CategorySeries buildCategoryDataset(String title, double[] values) {
2 CategorySeries series = new CategorySeries(title);
3 series.add("差", values[0]);
4 series.add("不达标", values[1]);
5 series.add("达标", values[2]);
6 series.add("优秀",values[3]);
7 return series;
8 }

设置dataset的方法--柱状图----柱状图可以有多组数据

1 String[] titles={"test"};
2 List<double[]> values=new ArrayList<double[]>();
3 values.add(new double[]{5120.0,21251.0,25610.0});
4 XYMultipleSeriesDataset dataset=buildBarDataset(titles, values);

1 protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<double[]> values) {
2 XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
3 int length = titles.length;
4 for (int i = 0; i < length; i++) {
5 CategorySeries series = new CategorySeries(titles[i]);
6 double[] v = values.get(i);
7 int seriesLength = v.length;
8 for (int k = 0; k < seriesLength; k++) {
9 series.add(v[k]);
10 }
11 dataset.addSeries(series.toXYSeries());
12 }
13 return dataset;
14 }

设置renderer的方法--饼图

1 int[] colors={Color.BLUE,Color.GREEN,Color.MAGENTA,Color.RED};
2 DefaultRenderer renderer=buildCategoryRenderer(colors);

1 protected DefaultRenderer buildCategoryRenderer(int[] colors) {
2 DefaultRenderer renderer = new DefaultRenderer();
3
4 renderer.setLegendTextSize(20);//设置左下角表注的文字大小
5 //renderer.setZoomButtonsVisible(true);//设置显示放大缩小按钮
6 renderer.setZoomEnabled(false);//设置不允许放大缩小.
7 renderer.setChartTitleTextSize(30);//设置图表标题的文字大小
8 renderer.setChartTitle("统计结果");//设置图表的标题 默认是居中顶部显示
9 renderer.setLabelsTextSize(20);//饼图上标记文字的字体大小
10 //renderer.setLabelsColor(Color.WHITE);//饼图上标记文字的颜色
11 renderer.setPanEnabled(false);//设置是否可以平移
12 //renderer.setDisplayValues(true);//是否显示值
13 renderer.setClickEnabled(true);//设置是否可以被点击
14 renderer.setMargins(new int[] { 20, 30, 15,0 });
15 //margins - an array containing the margin size values, in this order: top, left, bottom, right
16 for (int color : colors) {
17 SimpleSeriesRenderer r = new SimpleSeriesRenderer();
18 r.setColor(color);
19 renderer.addSeriesRenderer(r);
20 }
21 return renderer;
22 }

设置renderer的方法----柱状图

1 int[] colors={Color.BLUE};
2 XYMultipleSeriesRenderer renderer=buildBarRenderer(colors);
3 Type type=Type.DEFAULT;
4
5 //renderer.setZoomEnabled(false);//怎么失效了----使用下面的方式
6 renderer.setZoomEnabled(false, false);//http://www.tiecou.com
7 setChartSettings(renderer, "我是柱状图的标题", "", "统计结果", 0, 6, 0, 30000, Color.GRAY, Color.LTGRAY);
8 renderer.getSeriesRendererAt(0).setDisplayChartValues(true);
9 //renderer.getSeriesRendererAt(1).setDisplayChartValues(true);
10 renderer.setXLabels(0);//设置x轴上的下标数量
11 renderer.setYLabels(10); //设置y轴上的下标数量
12 renderer.setXLabelsAlign(Align.RIGHT);
13 renderer.setYLabelsAlign(Align.LEFT);//y轴 数字表示在坐标还是右边
14 renderer.setPanEnabled(false, false);//设置是否允许平移
15 renderer.addXTextLabel(2.0, "220kv电力线");//在指定坐标处显示文字
16 // renderer.clearXTextLabels();//清除 labels
17 //renderer.setZoomRate(1.1f);//设置放缩比
18 renderer.setBarSpacing(1f);// 设置柱状的间距
19 //renderer.setLabelsTextSize(30);//设置坐标轴上数字的大小
20 renderer.setXLabelsAngle(300.0f);//设置文字旋转角度 对文字顺时针旋转
21 renderer.setXLabelsPadding(10);//设置文字和轴的距离
22 renderer.setFitLegend(true);// 调整合适的位置
复制代码
复制代码
1 protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
2 XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
3 renderer.setAxisTitleTextSize(16);
4 renderer.setChartTitleTextSize(20);
5 renderer.setLabelsTextSize(15);
6 renderer.setLegendTextSize(15);
7 int length = colors.length;
8 for (int i = 0; i < length; i++) {
9 SimpleSeriesRenderer r = new SimpleSeriesRenderer();
10 r.setColor(colors[i]);
11 renderer.addSeriesRenderer(r);
12 }
13 return renderer;
14 }

最后将graphicalView放入指定的layout里

1 layout=(LinearLayout)findViewById(R.id.linearlayout);
2 layout.removeAllViews();
3 layout.setBackgroundColor(Color.BLACK);
4 layout.addView(graphicalView, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));

阅读全文

与android饼图相关的资料

热点内容
php论坛实训报告 浏览:403
java日期字符串转换成日期 浏览:135
linuxsftp连接 浏览:934
光伏日发电量算法 浏览:125
小肚皮app怎么才有vip 浏览:616
php全角转换半角 浏览:927
java字符序列 浏览:539
杭州编译分布式存储区块链 浏览:575
材料压缩曲线 浏览:247
linux命令排序 浏览:151
手机热点加密为啥连接不上电脑 浏览:979
编译器合并计算 浏览:959
android音频曲线 浏览:343
linuxftp自动登录 浏览:802
运行编译后网页 浏览:70
阅读app怎么使用 浏览:319
centos防火墙命令 浏览:432
命令行变更 浏览:332
linux设备和驱动 浏览:207
加密货币骗局破案 浏览:345