Android 鼠标样式修改
程序员文章站
2022-06-05 14:22:44
...
Android 鼠标样式修改
Android 系统鼠标资源文件的位置:
/frameworks/base/core/res/res/drawable-mdpi/drawable/pointer_arrow_icon.xml
资源文件指定了鼠标不同分辨率下的图片资源:
/frameworks/base/core/res/res/drawable-mdpi/drawable/drawable-mdpi/pointer_arrow.png
/frameworks/base/core/res/res/drawable-mdpi/drawable/drawable-hdpi/pointer_arrow.png
/frameworks/base/core/res/res/drawable-mdpi/drawable/drawable-xhdpi/pointer_arrow.png
/frameworks/base/core/res/res/drawable-mdpi/drawable/drawable-xxhdpi/pointer_arrow.png
还有一个pointer_arrow_large.png图片,这个图片是适配大屏幕的设备的。
如果没有在代码中动态修改鼠标图片,那么默认就是显示上面位置的图片。
动态修改鼠标样式的代码:
下面的view_point是鼠标需要更新的图片坐标范围。
private void setIconArrow() {
PointerIcon pointerIcon = PointerIcon.getSystemIcon(context, PointerIcon.TYPE_ARROW);//其中TYPE有一些系统定义的TYPE
view_point.setPointerIcon(pointerIcon);
}
//给View设置自定义的图片
//这里的load的resourceId需要是资源文件,不能是图片形式
private void setIconOther() {
view_point.setPointerIcon(PointerIcon.load(getResources(), R.drawable.pointer_other_icon));
}
这个view_point可以是某个具体的View比如某个相对布局或者某一块区域的view,
也可以是Activity的Window DecorView比如:
getWindow().getDecorView().setPointerIcon(PointerIcon.load(getResources(), R.drawable.pointer_spot_touch_icon));
具体情况,要看你在哪个界面显示。
pointer_other_icon.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<pointer-icon
xmlns:android="http://schemas.android.com/apk/res/android"
android:bitmap="@mipmap/ic_pointer_arrow_new" //设置图片
android:hotSpotX="5dp"
android:hotSpotY="5dp" />
PointerIcon源码位置: frameworks/base/core/java/android/view/PointerIcon.java
更多鼠标的设置:https://cloud.tencent.com/developer/article/1719663