android多线程面试题,HarmonyOS(2),安卓面试题最新2024

2024-06-17 1935阅读

*     public static final int CANCEL = 6;

*     public static final int HOVER_POINTER_ENTER = 7;

*     public static final int HOVER_POINTER_EXIT = 9;

*     public static final int HOVER_POINTER_MOVE = 8;

*     public static final int NONE = 0;

*     public static final int OTHER_POINT_DOWN = 4;

*     public static final int OTHER_POINT_UP = 5;

*     public static final int POINT_MOVE = 3;

*     public static final int PRIMARY_POINT_DOWN = 1;

*     public static final int PRIMARY_POINT_UP = 2;

  • * @return

    */

    @Override

    public boolean onTouchEvent(Component component, TouchEvent touchEvent) {

    // 通过id比较可以验证component组件就是DirectionalLayout

    MmiPoint pointerPosition;

    float x;

    float y;

    int id = component.getId();

    if (id == ResourceTable.Id_dl) {

    // 操作类型

    int action = touchEvent.getAction();

    if (TouchEvent.PRIMARY_POINT_DOWN == action) {

    // 按下操作

    // getPointerPosition()方法的参数指的是手指的索引,可能存在多个手指同时滑动,比如小米手机三个手指头同时向下滑动截屏

    // 目前这里只有一个手指头滑动,所以传入0

    pointerPosition = touchEvent.getPointerPosition(0);

    x = pointerPosition.getX();

    y = pointerPosition.getY();

    text.setText(“按下:”+ x + “–” + y);

    } else if (TouchEvent.POINT_MOVE == action) {

    // 滑动操作 过程我们不需要考虑,我们只确定按下时的位置和松开的位置进行比较

    pointerPosition = touchEvent.getPointerPosition(0);

    x = pointerPosition.getX();

    y = pointerPosition.getY();

    text.setText(“滑动:”+ x + “–” + y);

    } else if (TouchEvent.PRIMARY_POINT_UP == action) {

    // 松开操作

    pointerPosition = touchEvent.getPointerPosition(0);

    x = pointerPosition.getX();

    y = pointerPosition.getY();

    text.setText(“松开:” + x + “–” + y);

    }

    }

    // 返回值需要修改为true

    return true;

    }

    }

    我们通过按下、滑动、松开来测试效果

    android多线程面试题,HarmonyOS(2),安卓面试题最新2024

    android多线程面试题,HarmonyOS(2),安卓面试题最新2024

    android多线程面试题,HarmonyOS(2),安卓面试题最新2024

    2.2 判断滑动方向

    此时我们在TouchEvent.PRIMARY_POINT_UP == action操作中去判断x和y的变化,我们需要定义四个变量来分别记录起始的x和y的值和结束的x和y的值。

    float startX;float startY;float endX;float endY;

    注意这里不能放到方法中,需要提取到类的成员变量。

    package com.liziba.demo.slice;

    import com.liziba.demo.ResourceTable;

    import ohos.aafwk.ability.AbilitySlice;

    import ohos.aafwk.content.Intent;

    import ohos.agp.components.Component;

    import ohos.agp.components.DirectionalLayout;

    import ohos.agp.components.Text;

    import ohos.multimodalinput.event.MmiPoint;

    import ohos.multimodalinput.event.TouchEvent;

    public class MainAbilitySlice extends AbilitySlice implements Component.TouchEventListener {

    /** 文本组件 */

    Text text;

    @Override

    public void onStart(Intent intent) {

    super.onStart(intent);

    super.setUIContent(ResourceTable.Layout_ability_main);

    // 通过id寻找组件对象

    // 1、找到布局对象

    DirectionalLayout layout = (DirectionalLayout) this.findComponentById(ResourceTable.Id_dl);

    // 2、找到文本对象

    text = (Text) this.findComponentById(ResourceTable.Id_text_helloworld);

    // 3、给整个布局DirectionalLayout添加滑动事件

    layout.setTouchEventListener(this);

    }

    @Override

    public void onActive() {

    super.onActive();

    }

    @Override

    public void onForeground(Intent intent) {

    super.onForeground(intent);

    }

    float startX;

    float startY;

    float endX;

    float endY;

    /**

    * 滑动事件触发后调用的方法

    • * @param component     滑动事件触发的组件 – 这里是DirectionalLayout

      * @param touchEvent    事件的类型,上面有说到三种按下、滑动、抬起,其实有更多,如下所示

      自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

      深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

      因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

      由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

      如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      总结:

      面试是一个不断学习、不断自我提升的过程,有机会还是出去面面,至少能想到查漏补缺效果,而且有些知识点,可能你自以为知道,但让你说,并不一定能说得很好。

      有些东西有压力才有动力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。

      附上我的面试各大专题整理: 面试指南,满满的都是干货,希望对大家有帮助!

      android多线程面试题,HarmonyOS(2),安卓面试题最新2024

      本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录

      一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

      AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

      里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

      AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]