Tag: android canvas

在android中用canvas绘制四分之一规格?

我怎样才能创建与此相同的仪表? 这种规格类型是否存在任何库或专家? 我使用canvas作为圆规,但我不能创建这个 RectF oval = getOval(canvas, 1); RectF oval2 = getOval(canvas, 1.1f); Paint paint = new Paint(); paint.setColor(Color.DKGRAY); canvas.drawArc(oval2, 180, 90, true, paint); canvas.drawArc(oval, 180, 90, true, backgroundPaint); RectF innerOval = getOval(canvas, 0.9f); canvas.drawArc(innerOval, 180, 90, true, backgroundInnerPaint);

Canvas OnDraw方法

我目前正在使用一对布尔数组(水平和垂直)创建一个迷宫,以便为迷宫绘制线条。 迷宫中只有一次显示5个来自arrays的bool。 然后,我有一个总是居中的用户,当他在迷宫中移动时,会绘制下一组bool。 这是应该的。 我遇到的问题是:当用户移动到迷宫的某个部分时,for循环绘制线条变得高于bool数组,因此崩溃应用程序。 请在下面找到一些代码段。 onDraw: protected void onDraw(Canvas canvas) { canvas.drawRect(0, 0, width, height, background); int currentX = maze.getCurrentX(),currentY = maze.getCurrentY(); int drawSizeX = 6 + currentX; int drawSizeY = 6 + currentY; currentX = currentX – 2; currentY = currentY – 2; for(int i = 0; i < drawSizeX – 1; i++) […]

将位图加载到canvas并在其上绘制

我喜欢制作一个应用程序,比如一个小小的颜料,我必须得到一个位图,在canvas上绘制它,然后绘制它(用figer)…所以,我实际上有这个代码: import java.io.File; import java.io.FileOutputStream; import java.util.ArrayList; import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.os.Environment; import android.util.Log; import android.graphics.Bitmap; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; public class DrawView extends View implements OnTouchListener { private Canvas mCanvas; private Path mPath; public Paint mPaint; private ArrayList paths = new ArrayList(); private […]

设置位图的旋转和位置

我想知道我如何改变位图的位置,同时旋转它。 我画在canvas上。 我目前正在使用这行代码: canvas.drawBitmap(bitmap, posX, posY, paint); 我认为使用矩阵进行轮换是最好的选择吗? 问题是上面发布的代码行不是一个矩阵而是一个位置。 还有一个类似的代码行: canvas.drawBitmap(bitmap, matrix, paint); 这个采用矩阵而不是位置。 我该怎么做?

android动态壁纸视差滚动效果

当我们滚动时,主屏幕的前景(图标,小部件等)向全屏宽度向左或向右移动,但背景图像(或动态壁纸)仅移动该宽度的一小部分。 我的问题是如何得到这种效果。 到现在为止已经这样做了。 SurfaceHolder holder = getSurfaceHolder(); Canvas canvas = null; try { canvas = holder.lockCanvas(); if (canvas != null) { drawCircles(canvas); } } finally { if (canvas != null) holder.unlockCanvasAndPost(canvas); } 绘制function是 { private void draw(Canvas canvas) { Paint paint = new Paint(); DisplayMetrics metdisplayMatrics = new DisplayMetrics(); Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay(); display.getMetrics(metdisplayMatrics); […]

通过在自定义视图的onDraw中设置单位矩阵来偏移canvas

我通过canvas.setMatrix(matrix);在自定义视图的onDraw方法中为我的canvas设置了一个矩阵canvas.setMatrix(matrix); 然后我只使用预定义的颜料绘制网格: canvas.drawRect(0,0,viewWidth,viewHeight, background); for(int i=0; i <= nRows; i++){ canvas.drawLine(0,i*cellHeight, nCols*cellWidth,i*cellHeight,lines); canvas.drawLine(i*cellWidth, 0, i*cellWidth, nRows*cellHeight, lines); if(i != nRows) canvas.drawText(""+i, i*cellWidth, (i+1)*cellHeight, text); } 由于某种原因,整个canvas偏移了细胞高度的1.5倍。 知道为什么会发生这种情况或如何解决它? 因此,矩阵未初始化,因此根据文档应该是身份。 非常感谢!

onOffsetsChanged:移动位图

我希望我的Bitmap具有屏幕的高度,并且具有比屏幕更大的宽度,如果用户更改桌面以便他可以看到整个图像,则向右或向左移动一点点。 这是我的代码部分工作: int x = -1*(int)((xOffset*bmp.getWidth())); canvas.drawBitmap(bmp, x, 0, null); 谢谢!

Android在Canvas上获取Bitmap Rect(左,上,右,下)

我在Canvas上绘制一个Bitmap,然后对它进行一些缩放,非常简单,只需使用canvas.scale(int,int,pivot,pivot),然后,在缩放完成后,我需要获取Bitmap的坐标相对于视口。 是否有任何方便的方法来做到这一点,而不是自己计算初始位置是什么,然后它在规模之后? 实际上,具有缩放的位图可以比Canvas大,所以我实际上需要视图的剪辑大小和位图(不可见区域的大小,我想低于x,y(0,0)。

Android动画的简单线程问题

我正在尝试使用一些简单的Android动画实现一个线程。 我只是在sleep()中遇到错误 – 它说我需要一个方法。 我知道可能有一个明显的解决方案。 我的应用程序只是放置一个随机位置移动的球。 我想要的是继续在随机位置放置形状。 无论如何,有人可以告诉我我的线程做错了吗? 谢谢。 public class DrawingTheBall extends View { Bitmap bball; Random randX, randY; double theta; Handler m_handler; Runnable m_handlerTask; //for some reason I get a syntax error here m_handler = new Handler(); public DrawingTheBall(Context context) { super(context); // TODO Auto-generated constructor stub bball = BitmapFactory.decodeResource(getResources(), R.drawable.blueball); //randX = […]

Android – 在Canvas中绘制位图

我目前有一个5 x 5平方的迷宫游戏(占用屏幕宽度并均匀分割)。 然后,对于使用x和y坐标的每个框,我使用drawRect来绘制彩色背景。 我遇到的问题是我现在需要在同一位置绘制图像,因此替换当前的普通背景颜色填充。 这是我目前用于drawRect的代码(一些例子): // these are all the variation of drawRect that I use canvas.drawRect(x, y, (x + totalCellWidth), (y + totalCellHeight), green); canvas.drawRect(x + 1, y, (x + totalCellWidth), (y + totalCellHeight), green); canvas.drawRect(x, y + 1, (x + totalCellWidth), (y + totalCellHeight), green); 然后我还需要为canvas中的所有其他方块实现背景图像。 此背景将在其顶部绘制简单的1px黑色线条,当前代码以灰色背景绘制。 background = new Paint(); background.setColor(bgColor); […]