AvoidXfermode上API V10和API V14

AvoidXfermode上API V10和API V14

问题描述:

在地图活动我创建覆盖在其上上Cnavas我使用PaintAvoidXfermode上API V10和API V14

形状由从点和线

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避免重叠点绘制形状(点必须“在上面”)

avoidXfermode = new AvoidXfermode(pointColor, 255, Mode.AVOID); 

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

<color name="Point">#FFFF0000</color> 
<color name="Line">#FF4169E1</color> 

的问题是:它正常工作的设备上使用API​​ 10,但它并没有在所有的Nexus根据与API V14(与任何公差)

我做什么错了工作?

AvoidXfermode不支持硬件加速。

您可以通过View.isHardwareAccelerated()来确定,并将其设置为View.setLayerType(LAYER_TYPE_ *)。尽管您可能需要寻找替代品。

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

+0

有时Android的碎片让我哭) – 2013-04-06 11:07:36