这是我的家庭活动代码,当我运行它时,它只是一个小尺寸的盒子图表,所有内容都在一个小的图表中压缩。请帮助我如何让我的图表更大
package com.example.frendzy.iassist;
import android.graphics.Color;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.RelativeLayout;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.components.Legend;
import com.github.mikephil.charting.components.XAxis;
import com.github.mikephil.charting.components.YAxis;
import com.github.mikephil.charting.data.LineData;
public class homeActivity extends ActionBarActivity {
private RelativeLayout myLayout;
private LineChart mChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
myLayout = (RelativeLayout) findViewById(R.id.myLayout);
//create line chart
mChart = new LineChart(this);
//add to mylayout
myLayout.addView(mChart);
//customize line chart
mChart.setDescription("");
mChart.setNoDataTextDescription("No data for the moment");
//enable value highlighting
mChart.setHighlightEnabled(true);
//enable touch gestures
mChart.setTouchEnabled(true);
//we want also enable scaling and dragging
mChart.setDragEnabled(true);
mChart.setScaleEnabled(true);
mChart.setDrawGridBackground(false);
//enable pinch zoom to avoid scaling x and y axis separately
mChart.setPinchZoom(true);
//alternative background color
mChart.setBackgroundColor(Color.LTGRAY);
//now we work on data
LineData data=new LineData();
data.setValueTextColor(Color.WHITE);
//add data to line chart
mChart.setData(data);
//get legend object
Legend l = mChart.getLegend();
//customize legend
l.setForm(Legend.LegendForm.LINE);
l.setTextColor(Color.WHITE);
XAxis x1 = mChart.getXAxis();
x1.setTextColor(Color.WHITE);
x1.setDrawGridLines(false);
x1.setAvoidFirstLastClipping(true);
YAxis y1 = mChart.getAxisLeft();
y1.setTextColor(Color.WHITE);
y1.setAxisMaxValue(120f);
y1.setDrawGridLines(true);
YAxis y12 = mChart.getAxisRight();
y12.setEnabled(false);
}
答案 0 :(得分:2)
我遇到了同样的问题。尝试以编程方式将LineChart的LayoutParams设置为match_parent,但它不起作用。在我的例子中,我从布局xml中删除了LineChart视图,并将其替换为以下代码:
LineChart chart = new LineChart(context);
setContentView(chart);
在您的情况下,您应该删除:
myLayout = (RelativeLayout) findViewById(R.id.myLayout);
//add to mylayout
myLayout.addView(mChart);
编辑:如果您使用的是片段,则会在按下时收到错误。
片段的临时修复:
@Override
public void onStop() {
super.onStop();
getActivity().setContentView(R.layout.activity_main);
}
答案 1 :(得分:0)
你可以尝试很多事情:
在添加linearChart之前,检查是否可以设置Viewgroup.LayoutParams。在那里你可以设置linearChart的宽度和高度,该方法应该调用setLayoutParams必须或Android中的所有视图都有它。
设置后添加linearChart,我的意思是把这行代码:> mChart = new LineChart(this);在y12.setEnabled(false)之后。
很抱歉,如果你看到我猜,但我现在没有合适的笔记本电脑来测试你的代码:(
答案 2 :(得分:0)
我有同样的问题,但我通过替换
解决了这个问题mainLayouts.addView(mChart)
通过
setContentView(mChart);
尝试一下。它对我有用。快乐的编码!
答案 3 :(得分:0)
我也有这个问题,我解决了用{/ 1>替换myLayout.addView(mChart);
myLayout.addView(mChart, new AbsListView.LayoutParams(AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT));`