在我的Android应用程序中,我需要在图像上显示文本。用户在alertDialog中输入文本。这篇文章我需要把它放在图像的底部。我在图像上绘制文字:
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();
根据文本的长度,文本必须是中心。我怎样才能做到这一点?
提前致谢..
答案 0 :(得分:3)
使用
Paint.setTextAlign(Paint.Align.CENTER);
用于绘制文字的油漆。
public void setTextAlign(Paint.Align align)
设置绘画的文本对齐方式。这可以控制文本的方式 相对于其原点定位。左对齐意味着所有的 文本将在其起源(即原点)的右侧绘制 指定文本的左边缘等等。
编辑:在绘制文本中,您必须将图像的一半指定为x坐标(中心),y坐标应保持不变(沿底部的某个位置,具体取决于很高,你想要它。)