java - 当手指移过按钮时在 logcat 中显示文本
问题描述
我现在被一个问题困住了一段时间。我的应用程序上有 2 个按钮(按钮 1 和按钮 2),我想拥有它,所以当我的手指移过第一个按钮时,它会说“在按钮 1 中”,然后当我将手指移动到按钮 2 时它会在 logcat 中说“在按钮 2 中”。
我现在可以单击这些按钮以显示文本,但我不希望这样。我希望能够在不将其从屏幕上取下来显示文本的情况下四处移动手指。我将不胜感激任何帮助,谢谢!
我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_drag_drop);
buttonOne = (Button) findViewById(R.id.buttonOne);
buttonTwo = (Button) findViewById(R.id.buttonTwo);
buttonOne.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, " In button 1 ");
}
});
buttonTwo.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, " In button 2 ");
}
});
使用链接我更改了我的代码,但它似乎没有工作:
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
rect1 = new Rect(buttonOne.getLeft(), buttonOne.getTop(),
buttonOne.getRight(), buttonOne.getBottom());
rect2= new Rect(buttonTwo.getLeft(), buttonTwo.getTop(),
buttonTwo.getRight(), buttonTwo.getBottom());
}
public boolean onTouch (View v, MotionEvent event){
if (event.getActionMasked() == (MotionEvent.ACTION_DOWN | MotionEvent.ACTION_MOVE)) {
if (rect1.contains((int) event.getX(), (int) event.getY())) {
Log.d(TAG, " in button1: ");
}
if (rect2.contains((int) event.getX(), (int) event.getY())) {
Log.d(TAG, " in button2: ");
}
}
return true;
}
解决方案
推荐阅读
- oracle - Oracle 数据库,如何查看或更改 nchar 集
- python - 如何在我的模型的 ArrayField 列中创建一个计算字符串对象总数的函数?
- swift - Swift 在同一扩展中的扩展“私有”中生成 func
- c++ - 如何在图像上绘制精明的结果?
- python - 我想创建 Python Dash 应用程序来监视 ftp 上的目录,从文件中提取数据并实时绘制它
- node.js - 在节点中 S3 上传后返回数据
- ios - SwiftUI:实际的可触摸区域比我指定的要大
- python - 在 Windows x64 位上安装 Opencv-python 时出现问题
- python - 为什么 instagram 不能与 Selenium 无头 Chrome 一起使用?
- node.js - twilio 视频房间:主持人可以从 node.js express 端点静音房间中的参与者吗