Android achartengine-在图表旁边添加用于视图缩放的外部图像按钮会导致奇怪的UI行为
我想在图表视图顶部的视图上有一个按钮 问题: 当我按下按钮时,图表视图的克隆显示在按下按钮的背面。它在那里只停留了一秒钟,然后消失了。看看打印屏幕 有人知道为什么会这样吗 我正在附加虚拟源代码: 布局(main.xml):Android achartengine-在图表旁边添加用于视图缩放的外部图像按钮会导致奇怪的UI行为,android,charts,achartengine,Android,Charts,Achartengine,我想在图表视图顶部的视图上有一个按钮 问题: 当我按下按钮时,图表视图的克隆显示在按下按钮的背面。它在那里只停留了一秒钟,然后消失了。看看打印屏幕 有人知道为什么会这样吗 我正在附加虚拟源代码: 布局(main.xml): 和活动: import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Random; import org
和活动:
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import org.achartengine.ChartFactory;
import org.achartengine.GraphicalView;
import org.achartengine.chart.PointStyle;
import org.achartengine.chart.TimeChart;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.ImageButton;
import android.widget.LinearLayout;
public class TestgraphActivity extends Activity {
/** Called when the activity is first created. */
private XYMultipleSeriesDataset mDataset;
private XYMultipleSeriesRenderer mRenderer;
List<double[]> values = new ArrayList<double[]>();
private GraphicalView mChartView;
private TimeSeries time_series;
// chart container
private LinearLayout layout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (LinearLayout) findViewById(R.id.chart);
// create dataset and renderer
mDataset = new XYMultipleSeriesDataset();
mRenderer = new XYMultipleSeriesRenderer();
mRenderer.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mRenderer.setLabelsTextSize(15);
mRenderer.setLegendTextSize(15);
mRenderer.setPointSize(3f);
XYSeriesRenderer r = new XYSeriesRenderer();
r.setColor(Color.GREEN);
r.setPointStyle(PointStyle.CIRCLE);
r.setFillPoints(true);
mRenderer.addSeriesRenderer(r);
mRenderer.setClickEnabled(true);
mRenderer.setSelectableBuffer(20);
mRenderer.setPanEnabled(true);
time_series = new TimeSeries("test");
mDataset.addSeries(time_series);
fillData();
mChartView = ChartFactory.getTimeChartView(this, mDataset, mRenderer,
"H:mm:ss");
layout.addView(mChartView);
}
private void fillData() {
long value = new Date().getTime() - 3 * TimeChart.DAY;
for (int i = 0; i < 100; i++) {
time_series.add(new Date(value + i * TimeChart.DAY / 4), i);
}
}
}
import java.util.ArrayList;
导入java.util.Date;
导入java.util.List;
导入java.util.Random;
导入org.achartengine.ChartFactory;
导入org.achartengine.GraphicalView;
导入org.achartengine.chart.PointStyle;
导入org.achartengine.chart.TimeChart;
导入org.achartengine.model.TimeSeries;
导入org.achartengine.model.xymultiplesseriesdataset;
导入org.achartengine.renderer.XYMultipleSeriesRenderer;
导入org.achartengine.renderer.XYSeriesRenderer;
导入android.app.Activity;
导入android.graphics.Color;
导入android.os.Bundle;
导入android.widget.ImageButton;
导入android.widget.LinearLayout;
公共类TestgraphActivity扩展了活动{
/**在首次创建活动时调用*/
私有XYmultiplesseriesdataset mDataset;
私有XYMultiplesriesRenderer-mRenderer;
列表值=新的ArrayList();
private GraphicalView mChartView;
私人时间序列时间序列;
//图表容器
私人线路布局;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
布局=(线性布局)findViewById(R.id.chart);
//创建数据集和渲染器
mDataset=new xymultiplesseriesdataset();
mrender=新的XYMultipleSeriesRender();
mrender.setAxisTitleTextSize(16);
mRenderer.setChartTitleTextSize(20);
mrender.setLabelsTextSize(15);
mrender.setLegendTextSize(15);
mrender.设定点大小(3f);
XYSeriesRenderer=新的XYSeriesRenderer();
r、 setColor(Color.GREEN);
r、 设置点样式(PointStyle.CIRCLE);
r、 设定值(真);
mrender.addseriesrender(r);
mrender.setClickEnabled(真);
mrender.setSelectableBuffer(20);
mrender.setPanEnabled(true);
时间序列=新的时间序列(“测试”);
mDataset.addSeries(时间序列);
fillData();
mChartView=ChartFactory.getTimeChartView(this、mDataset、mrender、,
“H:mm:ss”);
布局。添加视图(mChartView);
}
私有void fillData(){
long value=new Date().getTime()-3*TimeChart.DAY;
对于(int i=0;i<100;i++){
时间序列。添加(新日期(值+i*TimeChart.DAY/4),i);
}
}
}
谢谢,
托尼托尼还将这个问题发布在《阿卡廷金问题追踪》(aChartEngine issues tracker)上,并在一定程度上得到了回答 链接到问题: 解决方案摘要:
renderer.setInScroll(true);
这似乎是在处理人工制品
renderer.setInScroll(true);