我想在用户点击图表时显示一个小弹出窗口。我已经阅读了问题的答案
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);
答案 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()返回此视图相对于其父
的左侧位置