gpt4 book ai didi

android - 远程 View 中的 achartengine 位图宽度

转载 作者:行者123 更新时间:2023-11-30 03:55:06 27 4
gpt4 key购买 nike

我对 aChartEngine 有疑问。我正在尝试在主屏幕小部件中显示图形。到目前为止没有成功,问题是当我将位图放入容器时它缩小并且没有拉伸(stretch)以匹配容器宽度。我看到有数据在更新,但就像这张图片一样:

enter image description here

图像上是容器和图形加载的位图,部分填充。

当像这样添加这个图(到 Activity )时没有问题:

GraphicalView graph = ChartFactory.getTimeChartView(context, getDataSet(dates, values, seriesTitle), getRenderer(context, lblAxisY), "HH:mm");
graphLayout.removeAllViews();
graphLayout.addView(graph, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));

当我将图形转换为位图并返回时,它是错误的:

float dpi = AndroidResolution.getScreenDpi(context);
GraphicalView graph = ChartFactory.getTimeChartView(context, getDataSet(dates, values, seriesTitle), getRendererWidget(context,
lblAxisY), "HH:mm");

graph.setDrawingCacheEnabled(true);
graph.layout((int) (0 * dpi), (int) (0 * dpi), (int) (100 * dpi), (int) (100 * dpi));
graph.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
graph.buildDrawingCache();
graph.getDrawingCache();

Bitmap bmp = Bitmap.createBitmap((int) (100 * dpi), (int) (100 * dpi), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bmp);
graph.draw(canvas);

return bmp;

我尝试了不同的布局和位图大小值,但我总是得到一些扭曲和缩小的东西。我无法获取 View 宽度和高度,因为它是远程 View 。

接收bmp的方法:

remoteView.setImageViewBitmap(R.id.imgRecentDetails, AndroidPlot.generateTimePlot(context, values, dates,"VALUES", "AXIS Y")));

渲染器代码:

XYMultipleSeriesRenderer returningRenderer = new XYMultipleSeriesRenderer();
returningRenderer.setApplyBackgroundColor(true);
returningRenderer.setBackgroundColor(Color.argb(0, 0, 255, 0));
returningRenderer.setMarginsColor(Color.argb(0, 0, 255, 0));
returningRenderer.setGridColor(Color.argb(119, 128, 128, 128));
returningRenderer.setShowGrid(true);
returningRenderer.setShowLegend(false);
returningRenderer.setAxisTitleTextSize(dpi * 3);
returningRenderer.setChartTitleTextSize(dpi * 3);
returningRenderer.setYLabels(5);
returningRenderer.setXLabels(3);
returningRenderer.setYTitle(lblAxisY);
returningRenderer.setAntialiasing(true);
returningRenderer.setYAxisMax(100);
returningRenderer.setYAxisMin(0);
returningRenderer.setYLabelsAlign(Align.RIGHT, 0);
returningRenderer.setYLabelsColor(0, Color.WHITE);
returningRenderer.setXLabelsColor(Color.WHITE);
returningRenderer.setZoomEnabled(false);
returningRenderer.setInScroll(true);
returningRenderer.setPanLimits(new double[] { 0, 1000, 0, 0 });
returningRenderer.setPanEnabled(true, false);
XYSeriesRenderer renderer = new XYSeriesRenderer();
renderer.setPointStyle(PointStyle.POINT);
renderer.setColor(Color.WHITE);
renderer.setFillBelowLine(true);
renderer.setFillBelowLineColor(Color.argb(255, 23, 123, 189));
returningRenderer.addSeriesRenderer(renderer);
return returningRenderer;

非常欢迎任何见解或解决方案。

更新:我也在常规 Activity 中尝试过它,它在容器的左上角也缩小了(使用 graph.toBitmap())。

最佳答案

尝试使用 returningRenderer.setInScroll(false)

关于android - 远程 View 中的 achartengine 位图宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13474102/

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