首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >v10接口和v14接口上的AvoidXfermode

v10接口和v14接口上的AvoidXfermode
EN

Stack Overflow用户
提问于 2013-03-22 16:06:25
回答 1查看 276关注 0票数 0

在地图活动中,我创建了叠加,在Cnavas上,我使用Paint在叠加上绘制形状

形状由点和线组成

代码语言:javascript
复制
linePaint = new Paint();
    linePaint.setColor(mContext.getResources().getColor(R.color.Line));
    linePaint.setStyle(Paint.Style.STROKE);
    linePaint.setStrokeWidth(strokeWidth);
    linePaint.setXfermode(avoidXfermode);
    linePaint.setFlags(Paint.ANTI_ALIAS_FLAG);

    mPointPaint = new Paint();
    mPointPaint.setColor(pointColor);
    mPointPaint.setFlags(Paint.ANTI_ALIAS_FLAG);

我还定义了AvoidXfermode,以避免点与线重叠(点必须在“顶部”)

代码语言:javascript
复制
avoidXfermode = new AvoidXfermode(pointColor, 255, Mode.AVOID);

在资源中以32b格式定义的颜色

代码语言:javascript
复制
<color name="Point">#FFFF0000</color>
<color name="Line">#FF4169E1</color>

问题是:它在带有API10的设备上工作得很好,但在带有API10的Nexus下却完全不能工作(有任何容忍度)。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-04 17:37:48

硬件加速不支持AvoidXfermode。

您可以使用View.isHardwareAccelerated()确定它,并使用View.setLayerType(LAYER_TYPE_*)设置它。尽管您可能需要寻找替代方案。

你可以在这里阅读到http://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15565510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档