如何使用Android canvas绘制一段文本,旋转45度之后,居中显示在屏幕中心
时间: 2023-12-04 14:02:22 浏览: 190
可以使用以下代码来实现:
```java
// 获取屏幕宽高
DisplayMetrics dm = getResources().getDisplayMetrics();
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;
// 创建画布
Bitmap bitmap = Bitmap.createBitmap(screenWidth, screenHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
// 创建画笔
Paint paint = new Paint();
paint.setColor(Color.BLACK);
paint.setTextSize(30);
// 计算文本的宽度和高度
String text = "Hello World";
Rect rect = new Rect();
paint.getTextBounds(text, 0, text.length(), rect);
int textWidth = rect.width();
int textHeight = rect.height();
// 将画布坐标系移动到屏幕中心
canvas.translate(screenWidth / 2, screenHeight / 2);
// 旋转画布
canvas.rotate(45);
// 绘制文本
canvas.drawText(text, -textWidth / 2, textHeight / 2, paint);
// 将绘制好的图像显示在屏幕上
ImageView imageView = findViewById(R.id.imageView);
imageView.setImageBitmap(bitmap);
```
解释一下代码的实现过程:
1. 首先获取屏幕的宽高,创建一个与屏幕大小相同的 Bitmap 和 Canvas 对象。
2. 创建一个画笔,并设置文本的颜色和字体大小。
3. 使用 getTextBounds() 方法计算文本的宽度和高度。
4. 将画布坐标系移动到屏幕中心。
5. 调用 rotate() 方法旋转画布,这里旋转了 45 度。
6. 使用 drawText() 方法绘制文本,需要注意的是,文本的位置应该是相对于屏幕中心的偏移量。
7. 最后,将绘制好的图像显示在屏幕上,这里使用了一个 ImageView。
阅读全文