AvoidXfermode上API V10和API V14
问题描述:
在地图活动我创建覆盖在其上上Cnavas
我使用Paint
AvoidXfermode上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
有时Android的碎片让我哭) – 2013-04-06 11:07:36