2012-01-26 48 views
0

我想讓按鈕位於圖表視圖頂部的視圖上。achartengine - 在圖表旁邊添加外部圖像按鈕以縮放視圖會導致奇怪的UI行爲

問題:

在按下圖視圖的克隆在按壓button.It的背面出現擠壓按鈕是有僅一秒鐘,然後消失。看看打印屏幕...

image link

是否有人有線索,爲什麼出現這種情況?

我附加僞源代碼:

佈局(main.xml中):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/chart" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" /> 

    <LinearLayout 
     android:id="@+id/layXzoom" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:orientation="horizontal" 
     android:padding="5dp" > 

     <Button 
      android:id="@+id/btnXzoomOut" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Test button" /> 
    </LinearLayout> 

</RelativeLayout> 

和活動:

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); 
     } 
    } 
} 

謝謝, 託尼

回答