Android(安卓)drawText 纵向居中
16lz
2022-01-24
protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); 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);}
以上代码不能将“Hello” 打印到控件的纵向居中,
要想实现纵向居中以上代码需要改为
int xPos = (canvas.getWidth() / 2);int yPos = (int) ((canvas.getHeight() / 2) - ((textPaint.descent() + textPaint.ascent()) / 2)) ; //((textPaint.descent() + textPaint.ascent()) / 2) is the distance from the baseline to the center.//yPos 即为计算得到的“Hello“文本的baseLine的Y坐标 canvas.drawText("Hello", xPos, yPos, textPaint);
更多相关文章
- android点击空白区域隐藏软键盘的实现
- Android中获取系统的时间
- Android中Broadcast的Intent大全
- android访问I2C接口
- android 打开新浪微博代码
- Android(安卓)系统是否要重启时弹出框
- android MediaPlayer 错误代码(error code)总结
- Android中两个控件滑动效果冲突的解决办法
- Android(安卓)获取电池基本信息代码