您好,可以请问下我应该如何将您给出的示例修改我的代码呢?
我创建了一个BubbleView的类,它包含气泡的大小,位置,文本,颜色的设置,在MainActivity中调用代码如下
sceneControl.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //获取屏幕坐标 android.graphics.Point point = new android.graphics.Point((int) event.getX(),(int) event.getY()); //坐标转换 Point3D screenpoint = null; screenpoint = scene.pixelToGlobe(point); Point point1 = new Point((int) event.getX(), (int) event.getY()); Point2D screenpoint2d = new Point2D(screenpoint.getX(), screenpoint.getY()); TrackingLayer3D trackingLayer3D = scene.getTrackingLayer(); //遍历数据集中点数据 for(int a=0;a<imp_point.getCount();a++){ Point2D dibiao = imp_point.getItem(a); GeoCircle scope = new GeoCircle(dibiao,2); boolean inscope = scope.hitTest(screenpoint2d,0.5); if(inscope){ //返回选中的屏幕像素点所对应的三维几何对象的 ID /* int index = trackingLayer3D.hitTest(point1); //返回指定对象 trackingLayer3D.get(index);*/ setContentView(R.layout.layout); bubbleView = new BubbleView(MainActivity.this); bubbleView = findViewById(R.id.bubble_view); if(bubbleView !=null){ bubbleView.setPosition((int) event.getX(), (int) event.getY()); bubbleView.setText("这是一个气泡"); } } } return false; } });
但是并未实现我想要的效果,这里有两个问题,一个是气泡不能在当前界面展示,他会重新再生成一个页面
第二个问题是它并不是一个屏幕坐标只对应一个匹配的对象,位置相近的会匹配两次,是应该修改容限范围吗,有没有更好的办法啊
请问我该如何修改?麻烦您了