Android无障碍实现滑动功能

android 7.0中引入新的手势api,它在

AccessibilityService中实现
public final boolean dispatchGesture(@NonNull GestureDescription gesture,
        @Nullable GestureResultCallback callback,
        @Nullable Handler handler)

要使用它很简单,首先声明一个Path:

Path path = new Path();
path.moveTo(100, 500);    //点击(100,500)做为起点
path.lineTo(800,500);     //水平向右滑动到(800,500)

再创建一个GestureDescription,添加上面的路径,最多可以添加10个路径,实现多段滑动

GestureDescription.Builder builder = new GestureDescription.Builder();
GestureDescription description = builder.addStroke(
           new GestureDescription.StrokeDescription(path, 20L, 1000L)).build();

boolean  ret=mAccService.dispatchGesture(description,
                    new AccessibilityService.GestureResultCallback() {
             @Override
                public void onCompleted(GestureDescription gestureDescription) {
                    super.onCompleted(gestureDescription);
                    Log.d(TAG,"滑动成功");
                }

                @Override
                public void onCancelled(GestureDescription gestureDescription) {
                    super.onCancelled(gestureDescription);
                    Log.d(TAG,"滑动失败 ");
                }
    }, null);
  Log.d(TAG,"滑动:"+ret);

 

这里碰到个坑,以前没用过这个手势,导致运行后总是掉用 onCancelled,每次都打印 "滑动失败 ",但是 ret 却都返回true,找了很久,才发现是accessibility-service的XML中要加描述android:canPerformGestures="true"

我的XML是这样:

<?xml version="1.0" encoding="utf-8"?>
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityEventTypes="typeViewClicked|typeViewFocused|typeWindowStateChanged|typeViewScrolled"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:description="@string/access_server_description"
    android:canRetrieveWindowContent="true"
    android:canPerformGestures="true"
    android:notificationTimeout="1000" />

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Android无障碍点击是指在安卓设备中,为了帮助视障人士或有其他行动障碍的人使用设备而开发的一种功能。该功能使得用户可以通过触摸屏幕来模拟真实的点击操作。 无障碍点击功能可以通过在设备的设置中进行配置。一旦开启,用户可以使用不同的手势来模拟单击、长按、滑动、双击等操作。这些手势可以通过定义不同的触摸区域来触发不同的操作。例如,用户可以通过双击屏幕的左上角来实现返回操作,通过长按屏幕右下角来实现主屏幕操作等。 该功能对于视觉障碍的用户来说尤为重要,因为他们无法准确地通过触摸屏幕定位和点击需要的区域。而无障碍点击功能可以帮助他们通过简单的手势操作来实现他们想要的操作,从而提高他们使用设备的便利性和自主性。 除了视觉障碍的用户外,无障碍点击功能对于其他行动不便的人士也有帮助。例如,一些人可能因为手部受伤或其他身体状况而无法精确地点击屏幕。通过无障碍点击功能,他们可以通过一些简单的手势来代替真实的点击动作,从而更方便地使用设备。 总之,Android无障碍点击功能是为了帮助视障人士和其他行动有障碍的人更便捷地使用设备而设计的。这项功能可以通过简单的手势来模拟真实的点击操作,提高用户的独立性和自主性。它为广大用户创造了一个更包容和无障碍的手机环境。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值