gpt4 book ai didi

android - 如何通过指定的 x 和 y 坐标获取 VectorDrawableCompat 的像素颜色

转载 作者:搜寻专家 更新时间:2023-11-01 09:47:21 24 4
gpt4 key购买 nike

我将 VectorDrawableCompat 设置为 View 的背景。

仅当我点击可绘制对象的非透明区域时,我才需要在此 View 上处理点击

对于 BitmapDrawable 来说非常简单 - 我可以检查 getPixel(x, y),我可以用 VectorDrawableCompat 做些什么?

最佳答案

您可以尝试对访问字段 VectorDrawableCompat.mVectorState 使用反射,并从属性 mCachedBitmap 获取缓存位图

类似的东西:

     public static int getColorAt(VectorDrawableCompat drawable, float x, float y) {
try {
final Field field = drawable.getClass().getDeclaredField("mVectorState");
field.setAccessible(true);
final Object state = field.get(drawable);
final Field bitmapField = state.getClass().getDeclaredField("mCachedBitmap");
bitmapField.setAccessible(true);
final Bitmap bitmap = (Bitmap) bitmapField.get(state);
return bitmap.getPixel((int) x, (int) y);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return -1;
}

关于android - 如何通过指定的 x 和 y 坐标获取 VectorDrawableCompat 的像素颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37405257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com