最初我有屏幕的宽度和高度:
display display = getwindowManager().getDefaultdisplay(); Point size = new Point(); display.getSize(size); int wIDth = size.x; int height = size.y; System.out.println("WIDth is " + wIDth + "Height is " + height); scrWIDth = wIDth; scrHeight = height;
然后我创建了一个具有相同颜色的Paint对象,并通过for循环迭代它以多次绘制圆形:
class Panel extends VIEw { public Panel(Context context) { super(context); paint = new Paint(); paint.setcolor(color.BLACK); paint.setTextSize(20); paint.setStyle(styles[0]); } @OverrIDe public voID onDraw(Canvas canvas) { setwillNotDraw(false); for (int i = 0; i < name.length; i++) { x = (int) ((scrWIDth / 360.0) * (90 + longitude[i])); y = (int) ((scrHeight / 180.0) * (90 - latitude[i])); paint.setStyle(styles[0]); canvas.drawCircle(x,y,25,paint); invalIDate(); System.out.println(x + "x" + name[i]); System.out.println(y + "y" + name[i]); } }
我实际上已经对lat和long的值进行了硬编码,如下所示:
Double longitude[] = new Double[]{0.0,62.2,122.2};Double latitude[] = new Double[]{40.2,40.2,40.2};
我不想硬编码lat和long的值,但我不确定需要什么样的数学计算才能动态地找到它,所以我完全处于黑暗状态.如果有人帮助我,那会很棒!任何可以帮助我为最终作品铺平道路的参考文献都是最受欢迎的,因为我知道有点难以找到这些类型的库或现成的代码.
P.S:我实际上不确定OpenGL是否会帮助我解决这些问题,但我很乐意接受它,所以对此也提出任何参考.
下面描绘的是我真正想要的图片:
解决方法 我最终使用Canvas和Path类创建了上面的树.叶子的画布和树枝的路径.这是一个单调乏味和耗时的工作,我建议其他人不要采取这条路线,因为它需要很长时间才能加载,因为它试图用Canvas做太多工作,而且我经常遇到内存问题.我还是面对他们.希望它可以帮助某人. @H_301_41@ 总结以上是内存溢出为你收集整理的在Android中使用Circles绘制树(字面意思) – 不是树视图结构全部内容,希望文章能够帮你解决在Android中使用Circles绘制树(字面意思) – 不是树视图结构所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)