Android屏幕检测功能实现

功能描述

项目其中一项功能是检测手机屏幕好坏,此处模仿华为屏幕检测功能的实现:
在屏幕上滑动,若满屏都能感应到滑动,则完好。展示如下:在这里插入图片描述

实现概述

1、隐藏activity的ActionBar和下方的虚拟按键;
2、自定义MyGridLayout继承自GridLayout,目的是为了处理触摸事件分发,重写其内的dispatchTouchEvent(MotionEvent ev)方法;
3、GridLayout自动填充TextView,因为将屏幕分割成了几十个小格,不可能一个一个在XML文件上挨个排布

实现步骤

1、创建MyGridLayout类,继承自GridLayout,覆写其分发方法。

public class MyGridLayout extends GridLayout  {
   

    /*构造函数的参数个数比较重要,可能引来Android.View.InflateException: 
     * Binary XML File Line 异常
     * 最好将构造函数的4种重载方法都加上*/
    public MyGridLayout(Context context, AttributeSet attrs) {
   
        super(context, attrs);
    }
    /*将所有要分发的MotionEvent的Action都改为MotionEvent.ACTION_DOWN*/
    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
   
        MotionEvent e = MotionEvent.obtain(ev);
        e.setAction(MotionEvent.ACTION_DOWN);
        return super.dispatchTouchEvent(e);
    }
}

关于Android分发机制,这边文章讲得很详细,我也是看它才弄懂的。包括onTouchListener和onClickListener的区别这篇,帮助也很大。

2、创建一个EmptyActity,在其布局文件中添加一个MyGridLayout容器

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&#
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值