android画曲线
⑴ android 使用canvas画线,如何保证快速画出圆滑的曲线
[mw_shl_code=java,true] RectF rect = new RectF(0, 0, radii, radii); // 圆形弧度需要的区域(左上角的x,y坐标 ,及右下角x,y坐标) Paint paint = new Paint(); paint.setColor(r.getColor(R.color.bg_color_1)); canvas.drawCircle(radii/2, radii/2, radii/2, paint);[/mw_shl_code]
⑵ android贝塞尔曲线动画底部超出屏幕
系统故障。Android贝塞尔曲线解析介绍说明,android贝塞尔曲线动画,底渣芹部超出屏幕是系统故障导致,游慧重新安装神梁答系统即可恢复。贝塞尔曲线,又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线,矢量图形软件通过来精确画出曲线,贝兹曲线由线段与节点组成。
⑶ 在android屏幕上任意一条曲线,怎样获取轨迹中重要的点
首先找到这条直线的所有点,然后开启一个线程循环获取点,橘此用Handle发困伍肆送汪轿消息去画线
@Override
public void run() {
try {
for(int i = 0 ; i < myPointList.size(); i++)
{
MyPoint myPoint = myPointList1.get(i);
Message message = Message.obtain();
message.what = 2;
message.obj = myPoint;
mHandler.sendMessage(message);
Thread.sleep(100);
}
} catch (Exception e) {
e.printStackTrace();
}
}
⑷ Android中Path类的lineTo方法和quadTo方法画线的区别
Path--->quadTo(float x1, float y1, float x2, float y2):
该方法的实现是当画弧线时会形成平滑的曲线,该曲线又称为"贝塞尔曲线"(Bezier curve),其中,x1,洞桐蠢y1为控制点的坐标值,x2,y2为终点的坐标值;
贝塞尔曲线的形成,就比如把一条橡皮筋拉直,橡皮筋的头尾部对应起点和终点,然后从拉直的橡皮筋中选择任意一点(除头尾对应的点外)扯动橡皮筋形成的弯曲形状,而那个扯动橡皮纳陪筋的点就是控制点。
2. Path--->lineTo(float x, float y) :
该方法实现的仅仅是轮扰两点连成一线的绘制线路,这样,当用这个方法绘制曲线时,缺陷就出来了。对比前面quadTo方法lineTo方法绘制的曲线不能形成平滑的弯曲,会出现明显的两点形成一线的突痕。
⑸ 请问Android如何画光滑的曲线图
绘制曲线图首先需要画好横竖坐标轴建立坐标系,比如坐标系中的100距离应该在canvas中绘制多长,这个是需要计算的,其实闷运坐标体系的建立是最复杂的,我看过很多第三方库的建立方法都不一样,有的要灵活一些,有的比较死板。至于绘制曲线要么是用Canvas.drawLine方法,要么是用Path.lineTo方法,看你自己的习惯。
为了做出一个外观良好的曲线图,我参考了两个开源代码,第一个的曲线图绘制限制较多,使用范围太窄,但是有数据变化时的动画效果。第二个的适用范围很广,他能根据数据集合自动计算横纵坐标的个数,在canvas上单元格的距离,只需输入坐标点就能自动建立坐标体系绘制曲线,但是没有动画效果。
先讲第一个LineView。
LineView的demo可以在这里下载,lineview其实只是github项目的一部分,我是将其提取出来了的,个人觉得他的其他部分没有参考价值。作者好像是个韩国人。
LineView的曲线绘制没有什么可取的部分,我想学习的是他实现动画效果的方法,设计的很好,但具体实现还需要改进,让动画更流畅。
Lineview的调用方法:
在xml中添加lineview控件
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/horizontalScrollView"
android:layout_alignParentRight="true"
android:layout_above="@+id/line_button">
<view
android:layout_width="wrap_content"
android:layout_height="200dp"
class="com.example.widget.LineView"
android:id="@+id/line_view"/>
</HorizontalScrollView>
在activity代码中获取lineview对象:
finalLineView lineView = (LineView)findViewById(R.id.line_view);
添加横坐标:
intrandomint=9;
ArrayList<String>test=newArrayList<String>();
for(inti=0;i<randomint;i++){
test.add(String.valueOf(i+1));
}
lineView.setBottomTextList(test);
允许绘制坐标点:
lineView.setDrawDotLine(true);
lineView.setShowPopup(LineView.SHOW_POPUPS_NONE);
ArrayList<Integer>dataList=newArrayList<Integer>();
intrandom=(int)(Math.random()*9+1);
for(inti=0;i<randomint;i++){
dataList.add((int)(Math.random()*random));
}
添加纵坐标的值:
ArrayList<ArrayList<Integer>>dataLists=newArrayList<ArrayList<Integer>>();
dataLists.add(dataList);
lineView.setDataList(dataLists);
从其用法中可以看出,lineview需要提前设定横坐标的范围,而且纵坐标的值必须和lineView.setBottomTextList(test)中添加的值一一对应(读lineview源码可以知道),使用起来很不方便,我觉源腊得作者仅仅是做出了一条曲线而已,而不太关注蚂裂梁是否有用。和很多曲线图的开源代码一样lineview允许一次绘制几根颜色不同的曲线。
只需在上面的代码中为dataLists再添加一个list成员就行。
⑹ 如何用android显示实时曲线求方法,代码
1. 网格背景,心电图的原理比较简单,首先绘制一个背景,就是网格就以Windows下的任务管理器来说吧,下面绿色的网格是固定的,如果你比较懒或者考虑绘制效率你甚至可以直接使用一个背景图片代替,当然代码绘制效率没有什么问题,直接使用Canvas的drawLine方法即可。由两个for循环控制着横纵坐标,当然Android123推荐大家使用drawLines参数直接是一个数组。
2. K线图,对于真正的曲线或者说K线图,其实就是描点画图了,在Android中我们自绘控件中重写onDraw方法,onDraw的形参Canvas提供了drawPoint(float x,float y,Point point) 。这三个参数前两个正好对应横竖坐标,第三个参数为Point对象,可以控制画笔的颜色、粗细和类型。如果是动态的,你需要使用一个计时器,最简单的使用Handler的postDelay方法,使用一个数组动态保存着每个点即可。
⑺ Android版的墨迹天气里面的曲线图是怎么做的
没有这样的View(控件),只能自己绘制或者创建自定义View。
其实画这种拆线是很容易的,自己搜一下,有很详细的教程,我就不在这里贴一堆网上的代码了。
⑻ Android 曲线图 绘制曲线
首先我们看看onDrwa 里面做了什么 从图里面笑冲我们可看到 绘制的框线方法,绘制data线方法 绘制线激老上的圆
从明升升最上面的图效果来看我们不需要圆 也不需要折线,但是框线要保留 因此我们需要 把
这个几个方法 改成public ,到时候继承之后重写他 不调用父方法即可
接下来我们创建一个 类继承 DrawLineChart 重写 DrawLineCircle,DrawLine 方法
这样我们就保留 了框线, 取消了圆和折线的绘制
接下来在DrawLine 里面绘制曲线
<code>
</code>
<code>
</code>
<code>
</code>
<code>
package com.app_chart;
</code>
⑼ 有谁知道android里的Path类中的quadTo()方法是怎么实现贝塞尔曲线的吗
/**
* 画曲线(核心代码)
*
* @param startp
* 开始点
* @param endp
* 结束点
* @param canvas
* 画布
* @param paint
* 画笔
*/
private void drawCurve(Point[] points, Canvas canvas, Paint paint)
{
Point startp = new Point();
Point endp = new Point();
for (int i = 0; i < points.length - 1; i++)
{
startp = points[i];
endp = points[i + 1];
int wt = (startp.x + endp.x) / 2;
Point p3 = new Point();
Point p4 = new Point();
p3.y = startp.y;
p3.x = wt;
p4.y = endp.y;
p4.x = wt;
// 确定曲线的路径
path = new Path();
path.moveTo(startp.x, startp.y);
path.cubicTo(p3.x, p3.y, p4.x, p4.y, endp.x, endp.y);
canvas.drawPath(path, paint);
}
}
⑽ 请问Android如何画光滑的曲线图
achartEngine可以的,在生成图的过程中,有一个函数传参数的时候记得它的两个参数是设定折线的光滑度的,你看看文档,绝对可以实现的,我之前做过。