在用户点击图表时显示一个小弹出窗口(achartengine)

时间:2014-03-14 10:21:02

标签: android dialog popup alertdialog achartengine

我想在用户点击图表时显示一个小弹出窗口。我已经阅读了问题的答案

Showing popup on clicking a point in graph AChartEngine

它建议吐司作为答案,但我希望用户在弹出窗口中选择两个选项。我 尝试使用alertdialog,甚至创建了一个自定义对话框,但它们覆盖整个屏幕区域,而我只想在用户点击图形的地方弹出一个小弹出窗口。

这是我的听众,我得到x,y坐标

     mChart.setOnTouchListener(new OnTouchListener() {
                if(event.getAction() == MotionEvent.ACTION_UP)
                              {                     
                    int xd= (int) event.getX();
                    int yd = (int) event.getY();
                                       }

重新定位对话框的代码

    AlertDialog alertDialog = builder.create();
    alertDialog.show();
    WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
    lp.x= xd;
    lp.y= yd;
    alertDialog.getWindow().setAttributes(lp);                      

1 个答案:

答案 0 :(得分:4)

以下是调整对话框大小的代码

dialog.show();

Display display =((WindowManager)getSystemService(context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getWidth();
int height=display.getHeight();

Log.v("width", width+"");
dialog.getWindow().setLayout((6*width)/7,(4*height)/5);

<强>已更新

MotionEvent类使用getX()方法获取与该视图对应的X触摸点,并使用getRawX()获取与屏幕对应的X触摸点。

因此,要获得与父对应的X触摸点,您可以通过简单的计算得到它:

 view.getLeft() + motionEvent.getX()

getLeft()返回此视图相对于其父

的左侧位置