我正在创建一个Android项目,我有一个按钮,我希望它在用户点击它之后在按钮下面显示一个吐司。我不想猜测按钮的坐标,所以有人提示吗?
答案 0 :(得分:8)
1)要获取按钮的x坐标,请在按钮上调用getLeft()
。对于按钮底部的y坐标,请致电getTop()
和getHeight()
。
2)要将这些坐标放入Toast中,请使用setGravity(Gravity.TOP|Gravity.LEFT, x, y)
。
3)要在用户点击按钮时实现这一点,请在按钮的onClick方法中执行此操作。
public void makeToast(View view){
int x = view.getLeft();
int y = view.getTop() + 2*view.getHeight();
Toast toast = Toast.makeText(this, "see me", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.TOP|Gravity.LEFT, x, y);
toast.show();
}
(从逻辑上讲,我一直认为它应该是getTop + getHeight,但每次尝试时,吐司出现在按钮顶部而不是低于它。因子2使其适用于各种高度。)
在你的xml中:
<Button
<!-- put other attributes here -->
android:onClick="makeToast" />
答案 1 :(得分:0)
“setGravity”行的调整......
下面的代码应该:
View v = findViewById(R.id.youButtnView);
int location[]=new int[2];
v.getLocationOnScreen(location);
Toast toast=Toast.makeText(getApplicationContext(),
"Your message", Toast.LENGTH_LONG);
toast.setGravity(Gravity.TOP|Gravity.LEFT,v.getRight()-25, location[1]-10);
toast.show();
答案 2 :(得分:0)
无需使用toast而是使用Tooltip