您的位置:首页 > 移动开发 > Android开发

Android利用canvas画各种图形(点、直线、弧、圆、椭圆、文字、矩形、多边形、曲线、圆角矩形)

2012-05-29 15:19 961 查看
效果图:




二、CustomActivity.java

public class CustomActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);
init();
}

private void init() {

LinearLayout layout=(LinearLayout) findViewById(R.id.root);

final DrawView view=new DrawView(this);

view.setMinimumHeight(500);
view.setMinimumWidth(300);
//通知view组件重绘
view.invalidate();
layout.addView(view);

}
}
自定义视图类详见转载处!!!

转自:/article/2742974.html

今天要给大家介绍的是在android中画饼图:

画扇形:
RectF oval2 = new RectF(60, 100, 200, 240);
// 设置个新的长方形,60为左上点的x坐标,100为左上点的y坐标;200为右下点的 x坐标,240为右下点的y坐标。
// 画弧,第一个参数是RectF:该类是第二个参数是角度的开始,第三个参数是多少度,第四个参数是真的时候画扇形,是假的时候画弧 线
canvas.drawArc(oval2, 200, 130, true, p);
一、 无网情况下:
由于Android 画图API为提供直接画饼图的方法,采用了比较原始的方法,画扇形,然后拼接在一起,由于为了显示立体效果,程序画了20次,每次改变上下的位置,结果看起来就会有立体感(如果谁有更好的方式,非常愿意学习)

canvas.drawArc(new RectF(0, 0, 300, 100), 0,60, true, paint);

会画一个宽300,高100,水平 顺时针方向的60度的扇形,程序中就是用这种方式拼接成整个饼图的.

二、有网情况下:

使用Google API实现:

WebView webView = new WebView(this);

String url = "http://chart.apis.google.com/chart?cht=p3&chs=350x180&chd=t:30,30,40";

webView.loadUrl(url);

setContentView(webView);

给Google API传递URL形式的参数,其中cht=p3表示图形类型为饼图,chs=350x180表示宽和高,chd=t:30,30,40表示饼图分为三份,每一份所占的显示比例;

返回结果是一个包含根据参数生成饼图图片的网页,所以以Android控件WebView接收进行显示。

下面为效果图。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐