您的位置:首页 > 汽车 > 新车 > Android系统主动修改鼠标样式

Android系统主动修改鼠标样式

2024/7/3 21:15:09 来源:https://blog.csdn.net/wenwang88/article/details/139997906  浏览:    关键词:Android系统主动修改鼠标样式

将鼠标移到到Button上,鼠标样式由箭头变成小手,pointerType=1000是箭头,pointerType=1002是鼠标小手

@frameworks/base/core/java/android/view/ViewRootImpl.java
processPointerEventmaybeUpdatePointerIcon(event);if (event.getActionMasked() != MotionEvent.ACTION_HOVER_EXIT) { if (!updatePointerIcon(event) && }
@frameworks/base/core/java/android/view/ViewGroup.java        final PointerIcon pointerIcon = mView.onResolvePointerIcon(event, pointerIndex);final PointerIcon pointerIcon = dispatchResolvePointerIcon(event, pointerIndex, child);pointerIcon = child.onResolvePointerIcon(transformedEvent, pointerIndex);   //  pointerType = 1002//onResolvePointerIcon 4 setPointerIcon, child=com.google.android.material.button.MaterialButton{ee1f3df VFED..C.. ....H.ID 1771,134-2068,230 #7f08000e app:id/VDSeriveButton} type=1002//onResolvePointerIcon 4 setPointerIcon, child=android.widget.LinearLayout{bfcf82c V.E...... .......D 0,0-3840,1080 #7f0801da app:id/main_layout} type=1002//onResolvePointerIcon 4 setPointerIcon, child=androidx.appcompat.widget.ContentFrameLayout{c5b42f5 V.E...... .......D 0,0-3840,1080 #1020002 android:id/content} type=1002//onResolvePointerIcon 4 setPointerIcon, child=androidx.appcompat.widget.FitWindowsLinearLayout{fc0588a V.E...... .......D 0,0-3840,1080 #7f080037 app:id/action_bar_root} type=1002//onResolvePointerIcon 4 setPointerIcon, child=android.widget.FrameLayout{49beefb V.E...... .......D 0,0-3840,1080} type=1002//onResolvePointerIcon 4 setPointerIcon, child=android.widget.LinearLayout{a576b18 V.E...... .......D 0,0-3840,1080} type=1002                                      InputManager.getInstance().setPointerIconType(pointerType);  // pointerType = 1002......
@frameworks/base/libs/input/PointerController.cpp        PointerController::updatePointerIcon
@frameworks/base/libs/input/MouseCursorController.cpp MouseCursorController::updatePointerIconmLocked.requestedPointerType = iconId;mLocked.updatePointerIcon = true;                    updatePointerLocked();
@frameworks/base/libs/input/SpriteController.cppstd::map<int32_t, SpriteIcon>::const_iterator iter = mLocked.additionalMouseResources.find(mLocked.requestedPointerType);mLocked.pointerSprite->setIcon(iter->second);mLocked.state.icon.bitmap = icon.bitmap.copy(ANDROID_BITMAP_FORMAT_RGBA_8888);

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com