我希望通过绘制一些线条来显示小部件的内容。我只想说我每n秒得到两个坐标(x,y)然后想要相应地更新小部件。这个现在工作得很好,但现在我想在这两点之间画一条线。
我搜索了很多东西,但没有解释绘制图像的基本原理。由于我没有图形经验,我想这些东西可以像在LaTeX中用tikzpicture绘制的图形一样工作。有人可以向我解释这一切是如何运作的 - 或者至少指出一个从一开始就解释这个问题的例子?非常感谢!
谢谢!
答案 0 :(得分:4)
在Android中,通常都归结为在画布上绘图,例如与方法View.onDraw()中一样。
// prepare picture
if (mBackground != null) {
mBackground.recycle();
}
mBackground = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas backgroundCanvas = new Canvas(mBackground);
backgroundCanvas.scale(width, height);
RectF rect = new RectF(0f, 0f, 1f, 1f);
Paint paint = new Paint();
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
paint.setColor(Color.parseColor("#18a518")); // gray
// draw line
backgroundCanvas.drawLine(startX, startY, stopX, stopY, paint);
的onDraw():
// draw picture on View canvas
@Override
public void onDraw(Canvas canvas) {
canvas.drawBitmap(mBackground, 0, 0, null);
}
添加强>
原始链如下:
1创建自己的View类(扩展)。
2在视图中定义onDraw()
方法。
3将View放在布局xml文件中(或在运行时添加:Activity.addContentView()
)。
4如果需要重绘,请致电invalidate(); // forces onDraw() to be called
有关详细信息,请参阅谷歌的Android示例。
然后,如果您想提高效率,请学习SurfaceView。但是在表面上我们也在画布上画画。
答案 1 :(得分:0)
http://www.droidnova.com/playing-with-graphics-in-android-part-i,147.html
可能有助于一个开始。不幸的是,这仍然让我无法理解如何在窗口小部件布局上实际绘制......