使用XML样式设置AndroidPlot的样式

使用XML样式设置AndroidPlot的样式,android,android-layout,androidplot,Android,Android Layout,Androidplot,我正在寻找一种将样式应用于AndroidPlot元素的方法,文档非常稀少。基本上,我想将图形设计元素外部化到styles.xml文件中,但我不确定如何实现。我尝试向Attrs.xml添加一个元素,但没有效果 My activity_main.xml布局文件: <com.androidplot.xy.XYPlot android:id="@+id/main_xyplot_main" style="@style/GraphStyle" andr

我正在寻找一种将样式应用于AndroidPlot元素的方法,文档非常稀少。基本上,我想将图形设计元素外部化到styles.xml文件中,但我不确定如何实现。我尝试向Attrs.xml添加一个元素,但没有效果

My activity_main.xml布局文件:

<com.androidplot.xy.XYPlot
        android:id="@+id/main_xyplot_main"
        style="@style/GraphStyle"

        androidPlot.domainLabel="@string/graph_x_axis"
        androidPlot.titleWidget.labelPaint.textSize="@dimen/title_font_size"
        androidPlot.domainLabelWidget.labelPaint.textSize="@dimen/domain_label_font_size"
        androidPlot.rangeLabelWidget.labelPaint.textSize="@dimen/range_label_font_size"
        androidPlot.rangeLabel="@string/graph_y_axis"
        androidPlot.title="@string/graph_title"
        androidPlot.renderMode="use_background_thread"

        androidPlot.graphWidget.rangeLabelPaint.textSize="@dimen/range_tick_label_font_size"
        androidPlot.graphWidget.rangeOriginLabelPaint.textSize="@dimen/range_tick_label_font_size"
        androidPlot.graphWidget.domainLabelPaint.textSize="@dimen/domain_tick_label_font_size"
        androidPlot.graphWidget.domainOriginLabelPaint.textSize="@dimen/domain_tick_label_font_size"

        androidPlot.graphWidget.gridLinePaint.color="#000000"
        androidPlot.graphWidget.marginBottom="25dp"
        androidPlot.graphWidget.marginLeft="20dp"
        androidPlot.graphWidget.marginRight="10dp"
        androidPlot.graphWidget.marginTop="20dp"

        androidPlot.legendWidget.heightMetric.value="25dp"
        androidPlot.legendWidget.iconSizeMetrics.heightMetric.value="15dp"
        androidPlot.legendWidget.iconSizeMetrics.widthMetric.value="15dp"
        androidPlot.legendWidget.positionMetrics.anchor="right_bottom"
        androidPlot.legendWidget.textPaint.textSize="10dp"

        android:layout_above="@id/main_percentage"
        android:gravity="top"

        android:visibility="invisible" />

Styles.xml

 <style name="GraphStyle">

    <item name="android:paddingBottom">0dp</item>
    <item name="android:paddingLeft">0dp</item>
    <item name="android:paddingRight">0dp</item>
    <item name="android:paddingTop">0dp</item>
    <item name="android:layout_width">"wrap_content"</item>
    <item name="android:layout_height">"wrap_content"</item>

</style>

0dp
0dp
0dp
0dp
“包装内容”
“包装内容”
有没有办法做到这一点?我想把所有这些androidPlot.*都放到GraphStyle中


谢谢

不幸的是,这目前不可能实现。Androidplot被打包为一个Jar,并且(据我所知)不可能包含Jar中使用的可样式化定义。这意味着您将无法覆盖绘图的Androidplot特定字段(以“Androidplot”开头的字段),但仍然可以覆盖来自视图基类的字段(以“Androidplot”开头的字段)

今后,我们将考虑使用.aar而不是.jar作为打包格式。除此之外,这应该让我们在工件中包含可样式化的定义,从而摆脱上述限制。关于这个话题的线索


更新:从0.6.2(当前的开发版本)开始,Androidplot作为.aar提供,可样式化支持有限,但是随着0.6.2的成熟,越来越多的属性被添加。有关详细信息,请参见。

仅供参考,自0.6.2起情况已发生变化。我已经更新了我的答案以反映这些变化。谢谢你,尼克。很高兴看到你在这个项目上如此努力。如果我有时间,我会贡献!