不同分辨率界面控件的点击点

/**
 * 
 * @param activity 测试的Activity
 * @param view 界面的控件
 * @param longClick 
 * @param time
 */
public static void clickOnScreen(Activity activity,View view, boolean longClick, int time) {
if (view == null)
Assert.assertTrue("View is null and can therefore not be clicked!",false);
int[] xy = new int[2];
view.getLocationOnScreen(xy);

// 获取控件的大小,并且计算出点击的控件中点位置
final int viewWidth = view.getWidth();
final int viewHeight = view.getHeight();
float x = xy[0] + (viewWidth / 2.0f);
float y = xy[1] + (viewHeight / 2.0f);

// 计算缩放比例,将要点击的x, y坐标恢复到缩放前的情况
// Activity activity = activityUtils.getCurrentActivity();
DisplayMetrics rdm = activity.getResources().getDisplayMetrics();
DisplayMetrics wdm = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(wdm);
x *= wdm.scaledDensity / rdm.scaledDensity;
y *= wdm.scaledDensity / rdm.scaledDensity;
Log.d("tag","view:"+view+"X-------->" + x + " Y---------->" + y);
// 最后再发送Android点击消息
if (longClick)
solo.clickLongOnScreen(x, y, time);
else
solo.clickOnScreen(x, y);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值