2012-02-23 55 views
2

在我的应用程序中,我使用画布绘制文本。现在我想设置绘制文本的宽度。我只能设置x,y的位置。我无法设置宽度和高度。如何在android中的canvas方法中设置文本的宽度?

我的问题

更新 例如,“印度是我的祖国”,或者如果任何长度的文本不言而喻的画布之外,这是背景图像之外。 我想打印“印度是

我的祖国”如果我设置宽度呢?我想它转到下一行

@Override 
protected void onDraw(Canvas canvas1) 
{ 
Paint paint = new Paint(); 
     Bitmap myBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.ban_background); 
     Bitmap resizeImage1=Bitmap.createScaledBitmap(myBitmap,590,350,false); 
     canvas1.drawColor(Color.BLACK); 
     canvas1.drawBitmap(resizeImage1,10,5, null); 
     paint.setStyle(Paint.Style.FILL); 
     paint.setAntiAlias(true); 
     paint.setTextSize(25); 
     paint.setColor(Color.BLUE); 
     paint.setFakeBoldText(true); 
     paint.setTextSize(20); 
     paint.setStyle(Paint.Style.FILL_AND_STROKE); 
     canvas1.drawText(CameraText, 100,175, paint); 
     } 
     } 
+0

当你设置文本大小时,宽度和高度会自动设置,我不认为你可以明确地设置宽度和高度。但如果你能解释它是你真正的问题是我可以帮助你。在设置文本大小之后,你可以得到文本的高度和宽度。Rect bounds = new Rect(); paint.getTextBounds(text,0,text.length(),bounds); – Triode 2012-02-23 06:29:42

+0

更新mt问题rajesh – Mercy 2012-02-23 06:50:16

+0

希望这是你想引用我的答案兄弟,如果不是遗憾 – Triode 2012-02-23 08:08:57

回答

0

我已经习惯了创建位图如下,IAM可以设置宽度和高度

Bitmap finalImage = Bitmap.createBitmap(IMAGE_WIDTH, IMAGE_HEIGHT, 
      Bitmap.Config.RGB_565); 
    Bitmap tempImage = Bitmap.createBitmap(IMAGE_WIDTH/2, IMAGE_HEIGHT, 
      Bitmap.Config.RGB_565); 
    Canvas g = new Canvas(finalImage); 
    Canvas gtemp = new Canvas(tempImage); 
    g.drawColor(Color.WHITE); 
    gtemp.drawColor(Color.WHITE); 
    Paint pnt = new Paint(); 
    pnt.setColor(Color.BLACK); 

    pnt.setTextAlign(Paint.Align.CENTER); 
    pnt.setTextSize(40); 
    pnt.setTypeface(font1); 

    g.drawText(input, IMAGE_WIDTH/2, 40, pnt); 
    Rect grct = new Rect(0, 0, IMAGE_WIDTH, IMAGE_HEIGHT); 
    Rect grctTemp = new Rect(0, 0, IMAGE_WIDTH/2, IMAGE_HEIGHT); 
    gtemp.drawBitmap(finalImage, grct, grctTemp, pnt); 

`

0

我不知道你的意思,但你可以尝试setStrokeWidth(2.0F )

我希望这有助于:d

+0

更新山问题 – Mercy 2012-02-23 06:50:03

+0

我猜你知道文本的位置的x和y。只需使用此链接测量文本的长度(http://stackoverflow.com/questions/4794484/calculate-text-size-according-to-width-of-text-area),然后查看是否x +的宽度超出了画布的范围,然后只是将字符串切成两个并且像那样打印(可能使用某种递归) 类似于(x + textWidth> canvas.width)然后继续并切割文本 – bluejamesbond 2012-02-23 07:38:27

相关问题