androidplot背景图像移位

时间:2014-07-14 14:24:28

标签: androidplot

我正在尝试使用以下代码在3个区域中分隔图形网格的背景:

int[] data = {0xff000000, 0x80008000, 0xff000000};
bgBitmap = Bitmap.createBitmap(data, 1, 3, Bitmap.Config.ARGB_8888);
RectF rect = plot.getGraphWidget().getGridRect();
BitmapShader myShader = new BitmapShader(
                    Bitmap.createScaledBitmap(bgBitmap, 1, (int) rect.height(), false),
                    Shader.TileMode.REPEAT,
                    Shader.TileMode.REPEAT);
plot.getGraphWidget().getGridBackgroundPaint().setShader(myShader);

因此将3像素位图缩放到图形高度并在整个域区域重复它。 然而,结果图表显示背景似乎向上移动了一点。 看起来移位大小大约等于域标签高度。

我该如何解决这个问题?

由于'声誉'的叹息,嗯不能发布图片。 链接到示例图表:http://marcel.mesa.nl/androidplot.png

1 个答案:

答案 0 :(得分:0)

我认为您正在遇到this thread末尾附近提到的问题。实质上,着色器的原点是屏幕的左上角,而不是使用着色器绘制背景的组件的左上角。解决方案是转换为graphWidget的左上角,如下所示:

RectF rect = plot.getGraphWidget().getGridRect();
Matrix m = new Matrix();
m.setTranslate(rect.left, rect.top);
shader.setLocalMatrix(m); // where shader is your shader instance