Android MPAndroidChart图表高度
我正在使用MPAndroidChart库绘制图表,但我无法获得正确的高度。不管我把它放在什么值上,它仍然是一个非常压缩的、无效的图表高度 你能帮忙吗 现在图表: 这是我的.xml文件Android MPAndroidChart图表高度,android,height,mpandroidchart,Android,Height,Mpandroidchart,我正在使用MPAndroidChart库绘制图表,但我无法获得正确的高度。不管我把它放在什么值上,它仍然是一个非常压缩的、无效的图表高度 你能帮忙吗 现在图表: 这是我的.xml文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="ma
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="it.bitrack.fabio.bitrack.AssetView"
android:id="@+id/assetView_relative_layout"
android:layout_marginTop="60dp">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true">
<LinearLayout
android:id="@+id/pressureLinearLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:text="Pressure"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold|italic"
android:id="@+id/textView6"
android:padding="10dp" />
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/pressureLineChart"
android:layout_width="match_parent"
android:layout_height="250dp"
android:padding="10dp" />
<TextView
android:layout_width="match_parent"
android:id="@+id/pressureSelectedTextView"
android:layout_height="wrap_content"
android:text="Nothing selected"
android:padding="10dp" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>
这是我的图表:
final ArrayList<Entry> lineEntries = new ArrayList<>();
for (Asset a: assetList) {
lineEntries.add(new Entry((epoch.getEpoch(a.datetime) - EPOCH_OFFSET), a.pressure));
Log.i("BiTrack(adding)", epoch.getEpoch(a.datetime) + " " + a.datetime);
}
//line chart data
LineDataSet lineDataSet = new LineDataSet(lineEntries, "Pressure");
lineDataSet.setValueTextSize(CHART_VALUE_TEXT_SIZE);
ArrayList<ILineDataSet> lineDataSets = new ArrayList<>();
lineDataSets.add(lineDataSet);
LineData lineData = new LineData(lineDataSets);
pressureLineChartLayout.setData(lineData);
Description d = new Description();
d.setText(spinner.getSelectedItem().toString());
pressureLineChartLayout.setDescription(d);
pressureLineChartLayout.setMinimumHeight(250);
pressureLineChartLayout.setExtraBottomOffset(50f);
XAxis xAxis = pressureLineChartLayout.getXAxis();
xAxis.setLabelRotationAngle(45f);
xAxis.setPosition(XAxis.XAxisPosition.BOTTOM);
xAxis.setValueFormatter(new IAxisValueFormatter() {
@Override
public String getFormattedValue(float value, AxisBase axis) {
return epoch.getDatetimeNoYear(((long) value) + EPOCH_OFFSET);
}
});
pressureLineChartLayout.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry entry, Highlight highlight) {
//display msg when value selected
if (entry == null)
return;
// Toast.makeText(context, epoch.getDatetime((int) entry.getX()), Toast.LENGTH_SHORT).show();
pressureSelectedTextView.setText("Date: " + epoch.getDatetime(((long) entry.getX()) + EPOCH_OFFSET) + ", Pressure: " + entry.getY() + " mbar");
}
@Override
public void onNothingSelected() {
pressureSelectedTextView.setText("Nothing selected");
}
});
pressureLineChartLayout.notifyDataSetChanged();
pressureLineChartLayout.invalidate();
pressureLinearLayout.setVisibility(getView().VISIBLE);
}
final ArrayList lineEntries=new ArrayList();
对于(资产a:资产列表){
lineEntries.add(新条目((epoch.getEpoch(a.datetime)-epoch_偏移量),a.pressure));
Log.i(“BiTrack(adding)”,epoch.getEpoch(a.datetime)+“+a.datetime);
}
//折线图数据
LineDataSet LineDataSet=新的LineDataSet(lineEntries,“压力”);
lineDataSet.setValueTextSize(图表值文本大小);
ArrayList lineDataSets=新的ArrayList();
添加(lineDataSet);
LineData LineData=新的LineData(LineData集);
pressureLineChartLayout.setData(线路数据);
描述d=新描述();
d、 setText(spinner.getSelectedItem().toString());
压力管路布置图。设置说明(d);
压力容器布局。设置最小高度(250);
压力容器布局。设置底部外偏移(50f);
XAxis XAxis=pressureLineChartLayout.getXAxis();
xAxis.setLabelRotationAngle(45f);
设置位置(xAxis.XAxisPosition.BOTTOM);
setValueFormatter(新的IAxisValueFormatter(){
@凌驾
公共字符串getFormattedValue(浮点值,AxisBase轴){
返回历元.getDatetimeNoYear((长)值)+历元偏移量;
}
});
pressureLineChartLayout.setOnChartValueSelectedListener(新的OnChartValueSelectedListener(){
@凌驾
public void onValueSelected(条目,高亮显示){
//选择值时显示消息
if(条目==null)
返回;
//Toast.makeText(context,epoch.getDatetime((int)entry.getX()),Toast.LENGTH_SHORT.show();
压力selectedtextview.setText(“日期:+epoch.getDatetime(((长)entry.getX())+epoch_OFFSET)+”,压力:“+entry.getY()+”mbar”);
}
@凌驾
不公开无效已选(){
pressureSelectedTextView.setText(“未选择任何内容”);
}
});
pressureLineChartLayout.notifyDataSetChanged();
pressureLineChartLayout.invalidate();
PressureLineEarlayout.setVisibility(getView().VISIBLE);
}
我可以通过删除pressureLineChartLayout.setMinimumHeight
属性并将pressureLineChartLayout.setExtraBottomOffset
设置为-50
而不是50
使其按我想要的方式工作
这两件事产生了魔力——别问我为什么