欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

共勉:夜深人静