android 自定义统计图

kokod21 2013-12-31 09:15:54

这2种统计图效果,求大神指点怎么实现,特别是第一个,好难!!!
...全文
215 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kokod21 2014-01-02
  • 打赏
  • 举报
回复
引用 4 楼 AA5279AA 的回复:
[quote=引用 2 楼 kokod21 的回复:] [quote=引用 1 楼 AA5279AA 的回复:] 重写onDraw方法 里面调用 RadialGradient类试一试 我只做过直线的,没做过这种圆的

@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mRect = new Rect();  
		mRect.set(0, 0, showwidth, height); 
		Paint p=new Paint();
		
		int color1 = Color.parseColor("#f1c40f");
		int color2 = Color.parseColor("#f39c12");
//		int rgb1 = Color.rgb(1, 1, 1);
//		int rgb2 = Color.rgb(1, 1, 1);
//		LinearGradient lg=new LinearGradient(0,0,screenWidth,0,color1,color2,TileMode.CLAMP);  //
		RadialGradient rg=new RadialGradient(x, y, radius, color0, color1, tile);
		p.setShader(rg);
		canvas.drawRect(mRect, p);  
	}
额,画出一个整块的扇形出来,可是怎么搞成需要的图还有待研究!!!!![/quote] 你可以这样想一下,这是画出来一个扇形, 那么我就可以把一张图给截成这个扇形。 那么如果这张图片的中间是透明色的话, 那就是想要的效果图了。 当然,这只是我的想法,我不知道他们是怎么做的。[/quote] 哎,慢慢研究吧!!!!!! 谢谢了!
失落夏天 版主 2013-12-31
  • 打赏
  • 举报
回复
重写onDraw方法 里面调用 RadialGradient类试一试 我只做过直线的,没做过这种圆的

@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mRect = new Rect();  
		mRect.set(0, 0, showwidth, height); 
		Paint p=new Paint();
		
		int color1 = Color.parseColor("#f1c40f");
		int color2 = Color.parseColor("#f39c12");
//		int rgb1 = Color.rgb(1, 1, 1);
//		int rgb2 = Color.rgb(1, 1, 1);
//		LinearGradient lg=new LinearGradient(0,0,screenWidth,0,color1,color2,TileMode.CLAMP);  //
		RadialGradient rg=new RadialGradient(x, y, radius, color0, color1, tile);
		p.setShader(rg);
		canvas.drawRect(mRect, p);  
	}
失落夏天 版主 2013-12-31
  • 打赏
  • 举报
回复
引用 2 楼 kokod21 的回复:
[quote=引用 1 楼 AA5279AA 的回复:] 重写onDraw方法 里面调用 RadialGradient类试一试 我只做过直线的,没做过这种圆的

@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mRect = new Rect();  
		mRect.set(0, 0, showwidth, height); 
		Paint p=new Paint();
		
		int color1 = Color.parseColor("#f1c40f");
		int color2 = Color.parseColor("#f39c12");
//		int rgb1 = Color.rgb(1, 1, 1);
//		int rgb2 = Color.rgb(1, 1, 1);
//		LinearGradient lg=new LinearGradient(0,0,screenWidth,0,color1,color2,TileMode.CLAMP);  //
		RadialGradient rg=new RadialGradient(x, y, radius, color0, color1, tile);
		p.setShader(rg);
		canvas.drawRect(mRect, p);  
	}
额,画出一个整块的扇形出来,可是怎么搞成需要的图还有待研究!!!!![/quote] 你可以这样想一下,这是画出来一个扇形, 那么我就可以把一张图给截成这个扇形。 那么如果这张图片的中间是透明色的话, 那就是想要的效果图了。 当然,这只是我的想法,我不知道他们是怎么做的。
卡卡的喵 2013-12-31
  • 打赏
  • 举报
回复
这个我也要学学
kokod21 2013-12-31
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
重写onDraw方法 里面调用 RadialGradient类试一试 我只做过直线的,没做过这种圆的

@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mRect = new Rect();  
		mRect.set(0, 0, showwidth, height); 
		Paint p=new Paint();
		
		int color1 = Color.parseColor("#f1c40f");
		int color2 = Color.parseColor("#f39c12");
//		int rgb1 = Color.rgb(1, 1, 1);
//		int rgb2 = Color.rgb(1, 1, 1);
//		LinearGradient lg=new LinearGradient(0,0,screenWidth,0,color1,color2,TileMode.CLAMP);  //
		RadialGradient rg=new RadialGradient(x, y, radius, color0, color1, tile);
		p.setShader(rg);
		canvas.drawRect(mRect, p);  
	}
额,画出一个整块的扇形出来,可是怎么搞成需要的图还有待研究!!!!!

80,349

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧