见下图。渐变绘制不正确,垂直黑线只是丑陋。
min
延伸到max
的渐变?例如。如果我的比例从0到100,我希望我的区域使用这些0..100梯度值中的N.
更新:提供的答案有效,但我收到此工件:
更新2:只有在使用一个LinearLayout
时才会发生这种情况,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/chart_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="3dip" >
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
然后TChart
被添加到chart_layout
。巴姆!偏移误差:)
答案 0 :(得分:1)
如何创建从最小到最大延伸的渐变?例如。如果我的比例从0到100,我希望我的区域使用这些0..100梯度值中的N.
我希望渐变从最小值变为最大值(在这种情况下为0到100)。因此在上图中,80处的点将具有第80个渐变颜色(几乎为绿色)。 50处的点将具有第50个渐变颜色(黄色)。我相信你需要一个新的渐变类型:SYMMETRICRECTGRADIENT
“区域”系列在下一个之前绘制段,并在每个段下方的区域中绘制每个段。这就是Area系列无法绘制均匀渐变的原因。但是,TeeChart的其他版本具有GradientRelative,它在您设置为false时执行您请求的操作。我已经在愿望清单中添加了为Java版本(TJ71016477)实现此属性(以及相关函数)的可能性。
同时,您可以使用SeriesBand工具来完成它。这是一个例子:
tChart1.getAspect().setView3D(false);
tChart1.getLegend().setVisible(false);
Area area1 = new Area(tChart1.getChart());
area1.fillSampleValues();
area1.setOrigin(0);
area1.setUseOrigin(true);
area1.getAreaLines().setVisible(false);
area1.getGradient().setVisible(false);
area1.setColor(Color.transparent);
SeriesBand band1 = new SeriesBand(tChart1.getChart());
band1.setSeries(area1);
band1.getGradient().setVisible(true);
band1.getGradient().setDirection(GradientDirection.VERTICAL);
band1.getGradient().setStartColor(Color.green);
band1.getGradient().setMiddleColor(Color.yellow);
band1.getGradient().setUseMiddle(true);
band1.getGradient().setEndColor(Color.red);
这是我上面的代码所得到的:
更新:我已经复制了奇怪的工件问题。我已添加到愿望清单中进一步调查(TJ71016541)。
同时,仅为图表使用第二个LinearLayout
似乎工作正常。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="3dip" >
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/chart_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" />
</LinearLayout>
正如评论中所述,另一种方法是隐藏区域线并使SeriesBand笔可见:
area1.getLinePen().setVisible(false);
band1.getPen().setVisible(true);
答案 1 :(得分:0)
如何创建从最小到最大延伸的渐变?例如。如果我 有一个从0到100的比例我希望我的区域使用这些0..100中的N. 梯度值。
我担心不可能使用0 ... 100渐变取决于比例,所以区域的渐变使用开始,中间和结束颜色分布在整个区域以绘制渐变。
如何删除垂直黑线?
要删除垂直黑线,只需设置false区域线。
我希望能有所帮助。
谢谢,