1

ビットマップ上にテキストを描画するときに、テキストを 180 度回転させたいと考えています。テキスト以外には何も描画されていないため、ビットマップ自体を回転させることもできます。テキストを回転させるために以下のコードで何を使用する必要があるかはわかりませんが、ImageView、キャンバス、ペイント、ビットマップ???

  ImageView ivImage = (ImageView)findViewById(R.id.ivImage);

  DisplayMetrics metrics = getResources().getDisplayMetrics();
  int width = metrics.widthPixels;
  int height = metrics.heightPixels;

  Bitmap.Config conf = Bitmap.Config.ARGB_8888;
  Bitmap bitmap = Bitmap.createBitmap(width, height, conf);

  Canvas canvas = new Canvas(bitmap);
  Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
  paint.setColor(Color.RED);
  paint.setTextSize((int) (200 * 1));

  // draw text to the Canvas center
  Rect bounds = new Rect();
  paint.setTextAlign(Align.CENTER);

  String text = "HELP";

  paint.getTextBounds(text, 0, text.length(), bounds);
  int x = bitmap.getWidth() / 2; //  (bitmap.getWidth() - bounds.width())/2;
  int y = bitmap.getHeight() / 2; // (bitmap.getHeight() + bounds.height())/2; 

  canvas.drawText(text, x * 1, y * 1, paint);

  ivImage.setImageBitmap(bitmap);
4

1 に答える 1

4

これが役立つことを願っています。これは、時計を作成するときに私が行った方法です

// Save canvas in current state
canvas.save();

// Rotate canvas around center and draw
canvas.rotate(degrees, canvasWidth/2, canvasHeigth/2);
canvas.drawText(text, x, y, paint)

// Restore canvas, rotates it back to original
canvas.restore();
于 2013-07-31T08:04:11.897 に答える