2011-08-31 64 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