我正在尝试使用下面的代码显示文本.问题是文本不是水平居中的.当我设置坐标时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);
}
Run Code Online (Sandbox Code Playgroud) 我试图在我的位图周围创建一个圆形框架!

使用此代码,我可以使我的位图圆形:
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap
.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff4242DB;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = bitmap.getWidth()/2;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//canvas.drawCircle(0, 0, bitmap.getWidth(), paint);
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
Run Code Online (Sandbox Code Playgroud)
我试过的是用画布绘制一个圆圈(outcommented line),但它没有结果.有谁知道如何在它周围添加圆形边框?
编辑
当我使用该行时:
canvas.drawCircle(0, 0, …Run Code Online (Sandbox Code Playgroud) 我在一个 android 项目上工作,我在其中打开了一个网页。如果用户没有互联网连接,我有一个听众。我没有显示标准的“找不到页面”,而是为 webview 提供了一个存储在我的资产文件夹中的本地 html 文件。通过这行代码:
web.loadUrl("file:///android_asset/html/404error.html");
Run Code Online (Sandbox Code Playgroud)
在 HTML 文件中,我认为是编码?是“utf-8”,如果相关的话,它会用 javascript 说明一些事情。
一切正常,除了在显示“ÅÄÖ”时,所有这些字符都被替换为“?”
有人知道解决方案吗?
谢谢!