2014-05-04 52 views
1

我正在尋找一種方式來樣式應用到AndroidPlot元素,和文檔是珍貴稀少。基本上,我想將圖形設計元素外化到我的styles.xml文件中,但我不知道如何執行此操作。我試過向Attrs.xml添加一個元素,但無濟於事。樣式化AndroidPlot XYPlot與XML風格

我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> 

有甚至辦法做到這一點?我想把所有這些androidPlot。*放到GraphStyle中。

謝謝!

回答

1

不幸的是,這是目前不可能。 Androidplot被打包成一個Jar,並且(據我所知)不可能在jar包中使用可修改的定義。這意味着你將無法覆蓋Plot中的Androidplot特定字段(以「androidPlot」開頭的那些字段),但仍可以覆蓋來自View基類(以「android」開頭的那些字段)的字段。

展望未來,我們正在使用的.jar作爲封裝格式的.aar而不是考慮。除此之外,這應該讓我們在工件中包含可定義的定義,擺脫上述限制。 Here's a link添加到該主題的主題。

UPDATE:作爲0.6.2(當前開發版本)Androidplot可作爲具有有限設置樣式支持一個.aar,然而如0.6.2的成熟被添加越來越多的屬性。詳情請參閱this thread

+0

只是FYI截至0.6.2的事情已經改變。我已經更新了我的答案以反映這些更改。 – Nick

+0

謝謝你的尼克。很高興看到你在這個項目上努力工作。如果我有時間我會貢獻! – nickzeke