[問題] 模擬點擊懸浮View上的位置
板上的大大們您好
小弟想做一個懸浮視窗
最小化回到桌面
可以移動到特定位置
然後按下按鈕後會在該位置模擬點擊動作
會點擊到螢幕上的對應位置
現況與問題描述:
目前懸浮視窗和模擬點擊都做了可以Work
在自己的APP下按下模擬點擊可以點到特定位置
但是在最小化APP後模擬點擊的部分卻無法觸發該位置的點擊
在輸出Log後發現點擊事件有觸發
但是沒辦法傳遞到螢幕上的元件
程式碼如下:
Button btn_click = dialog_control.findViewById(R.id.btn_click);
btn_click.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//取得目標位置在螢幕上的座標
int[] location = new int[2];
dialog_target.getLocationOnScreen(location);
//有取得正確座標, 執行模擬點擊時無法觸發畫面上的元件
simulateTouchEvent(dialog_target, location[0], location[1]);
}
});
其中dialog_control是控制的View, dialog_target是懸浮的目標視窗
想要模擬點擊dialog_target位置下的元件
不知道是否是點擊方式選錯了, 或是需要特別的權限
先謝謝大大的指引了
發現少貼了simulateTouchEvent
立馬補上
private void simulateTouchEvent(View view, float x, float y) {
long downTime = SystemClock.uptimeMillis();
long eventTime = SystemClock.uptimeMillis() + 100;
int metaState = 0;
MotionEvent motionEvent = MotionEvent.obtain(downTime, eventTime,
MotionEvent.ACTION_DOWN, x, y, metaState);
view.dispatchTouchEvent(motionEvent);
MotionEvent upEvent = MotionEvent.obtain(downTime+1000, eventTime+1000,
MotionEvent.ACTION_UP, x,y, metaState);
view.dispatchTouchEvent(upEvent);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.23.68.54
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1546425537.A.CA9.html
推
01/02 21:34,
5年前
, 1F
01/02 21:34, 1F
→
01/02 21:35,
5年前
, 2F
01/02 21:35, 2F
→
01/03 10:26,
5年前
, 3F
01/03 10:26, 3F
※ 編輯: RX1226 (211.23.68.54), 01/03/2019 12:07:24
→
01/03 12:08,
5年前
, 4F
01/03 12:08, 4F
→
01/03 19:09,
5年前
, 5F
01/03 19:09, 5F
→
01/04 10:39,
5年前
, 6F
01/04 10:39, 6F
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章