2011-08-31 39 views
0

在我的android应用程序中,我需要在图像上显示文本。文本由用户在alertDialog中输入。这段文字我需要将它置于图像的底部。我画上的图像文字与此:在android中的图像中心文字?

private Canvas drawTextImage(Bitmap b) { 
     Canvas c = new Canvas(b); 
     Paint paint = new Paint(); 
     paint.setColor(getResources().getColor(R.color.orange)); 

     paint.setStrokeWidth(30); 
     paint.setAntiAlias(true); 
     paint.setTextSize(40); 
     c.drawText(text, 350, 900, paint); 

     c.translate(300, 50); 
     return c; 
    } 

我alertDiallg是这样的:

 final AlertDialog.Builder alert = new AlertDialog.Builder(this); 
    alert.setTitle("Enter a text "); 
    final EditText input = new EditText(this); 
    InputFilter[] FilterArray = new InputFilter[1]; 
    FilterArray[0] = new InputFilter.LengthFilter(25); 
    input.setFilters(FilterArray); 

    alert.setView(input); 
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int whichButton) { 
      text = input.getText().toString().trim(); 
      Canvas c = new Canvas(bitmapResult); 
      drawTextImage(bitmapResult); 
      saveimage(); 
     } 
    }); 

    alert.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        dialog.cancel(); 
        saveimage(); 
       } 
      }); 

    alert.show(); 

Tehe文本必须根据它的长度为中心。我怎样才能做到这一点?

在此先感谢..

回答

3

使用

Paint.setTextAlign(Paint.Align.CENTER); 

上用来绘制文本油漆多数民众赞成。

公共无效setTextAlign(Paint.Align对齐)

设置漆的文本对齐方式。这将控制文本如何相对于其原点定位 。左对齐意味着所有的 文本将被绘制在其原点的右侧(即原点 指定了文本的左边缘)等等。

Source


编辑:在画文本必须指定一半与你的图像作为x坐标(中心),y坐标应保持不变(某处沿着底部,取决于你想要的高度)。

+1

ok ......但是在drawText方法中,我应该放什么? – Gabrielle

+0

编辑我的答案。 – 2011-08-31 11:48:21