目标:纯粹的canvas上的Android> = 1.6。 假设我想写一个函数,将绘制(宽度,高度)大的红色矩形,然后在里面画一个黑色的Hello World文本。 我想要文字在矩形的中心视觉。 所以我们试试: void drawHelloRectangle(Canvas c, int topLeftX, int topLeftY, int width, int height) { Paint mPaint = new Paint(); // height of 'Hello World'; height*0.7 looks good int fontHeight = (int)(height*0.7); mPaint.setColor(COLOR_RED); mPaint.setStyle(Style.FILL); c.drawRect( topLeftX, topLeftY, topLeftX+width, topLeftY+height, mPaint); mPaint.setTextSize(fontHeight); mPaint.setColor(COLOR_BLACK); mPaint.setTextAlign(Align.CENTER); c.drawText( "Hello World", topLeftX+width/2, ????, mPaint); } 现在我不知道要把drawText的参数放在哪里 […]
我有一个视图,我正在使用onDraw(Canvas canvas)方法中的Canvas对象进行绘制。 我的代码是: Paint paint = new Paint(); paint.setColor(Color.WHITE); paint.setStyle(Style.FILL); canvas.drawPaint(paint); paint.setColor(android.R.color.black); paint.setTextSize(20); canvas.drawText("Some Text", 10, 25, paint); 问题是文字没有通过背景显示,我做错了什么? 如果我删除canvas.drawPaint(paint)和paint.setColor(android.R.color.black),你可以看到屏幕上的文字…..
我正在尝试使用下面的代码显示文本。 问题是文本没有水平居中。 当我设置drawText的坐标时,它在这个位置设置文本的底部。 我想要绘制文本,以便文本居中也水平。 这是一个图片来进一步显示我的问题: @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //canvas.drawRGB(2, 2, 200); Paint textPaint = new Paint(); textPaint.setARGB(200, 254, 0, 0); textPaint.setTextAlign(Align.CENTER); textPaint.setTypeface(font); textPaint.setTextSize(300); canvas.drawText("Hello", canvas.getWidth()/2, canvas.getHeight()/2 , textPaint); }