(3.5)HarmonyOS鸿蒙上下左右方向滑动
生活随笔
收集整理的這篇文章主要介紹了
(3.5)HarmonyOS鸿蒙上下左右方向滑动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
需要獲取按下時候的坐標和松開時候的坐標,并將兩者進行比較。
①MainAbilitySlice.java文件
可以根據使用情況做修改代碼中判斷處的限制偏差范圍。
package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.components.Button; import ohos.agp.components.Component; import ohos.agp.components.DirectionalLayout; import ohos.agp.components.Text; import ohos.media.image.common.Position; import ohos.multimodalinput.event.MmiPoint; import ohos.multimodalinput.event.TouchEvent;public class MainAbilitySlice extends AbilitySlice implements Component.TouchEventListener{float starX;float starY;float endX;float endY;Text txt;@Overridepublic void onStart(Intent intent) {super.onStart(intent);super.setUIContent(ResourceTable.Layout_ability_main);//通過id找到布局對象(其也可以理解是一種組件)DirectionalLayout dl = (DirectionalLayout) findComponentById(ResourceTable.Id_dl);//通過id找到文本框組件txt = (Text) findComponentById(ResourceTable.Id_txt);//給整個布局添加滑動事件,當在整個布局上滑動時,就會不斷調用本類中onTouchEvent方法dl.setTouchEventListener(this);}@Overridepublic void onActive() {super.onActive();}@Overridepublic void onForeground(Intent intent) {super.onForeground(intent);}@Overridepublic boolean onTouchEvent(Component component, TouchEvent touchEvent) {//component表示滑動的哪個組件,布局也是一種組件,實際上這里示例就是在整個布局上進行的。//touchEvent表示動作對象(按下,滑動,抬起)。//獲取當前手指對于屏幕進行的操作(按下,滑動,抬起)int action = touchEvent.getAction(); //1表示按下,2表示抬起,3表示滑動(移動)if (action == TouchEvent.PRIMARY_POINT_DOWN){MmiPoint position = touchEvent.getPointerPosition(0);starX = position.getX();starY = position.getY();txt.setText(starX + "--" + starY);}else if (action == TouchEvent.PRIMARY_POINT_UP){MmiPoint position = touchEvent.getPointerPosition(0);endX = position.getX();endY = position.getY();txt.setText(endX + "--" + endY);//Math.abs(starY - endY) < 100是做一個Y方向的限定范圍,下面類似。if (starX > endX && Math.abs(starY - endY) < 100){txt.setText("左滑了");}else if (starX < endX && Math.abs(starY - endY) < 100){txt.setText("右滑了");}else if (starY > endY && Math.abs(starX - endX) < 100){txt.setText("上滑了");}else if (starY < endY && Math.abs(starX - endX) < 100){txt.setText("下滑了");}else txt.setText("無效滑動(請直一點!)");}else if (action == TouchEvent.POINT_MOVE){txt.setText("滑動中...");}return true;} }②ability _main.xml文件
<?xml version="1.0" encoding="utf-8"?> <DirectionalLayoutohos:id="$+id:dl"xmlns:ohos="http://schemas.huawei.com/res/ohos"ohos:height="match_parent"ohos:width="match_parent"ohos:alignment="center"ohos:orientation="vertical"><Textohos:id="$+id:txt"ohos:height="match_content"ohos:width="match_content"ohos:text="這里是文本框"ohos:text_size="100"/></DirectionalLayout>總結
以上是生活随笔為你收集整理的(3.5)HarmonyOS鸿蒙上下左右方向滑动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云之家如何找到自己的公司
- 下一篇: 浦大喜奔app怎么取现(汉典浦字的基本解