title: How to draw text in all caps on Canvas
body: <p>I am drawing text on my <code>Canvas</code> using <code>TextPaint</code> and <code>StaticLayout</code>.  However, I want my text to be drawn in capital letters.  The suggestion online is to use <code>toUpperCase()</code> but that change does not reflect on the canvas.</p>
  
  <p>This is my code:</p>
  
  <pre><code>public void createBitmapAndSave(ImageView img) {
  
          BitmapDrawable bitmapDrawable = ((BitmapDrawable) img.getDrawable());
          Bitmap bitmap = bitmapDrawable.getBitmap();
          Bitmap mutableBitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
  
          String topText = topTextView.getText().toString();
          String bottomText = bottomTextView.getText().toString();
  
          Canvas canvas = new Canvas(mutableBitmap);
          TextPaint topPaint = new TextPaint();
          TextPaint bottomPaint = new TextPaint();
          Typeface typeface = getResources().getFont(R.font.impact);
  
          topPaint.setColor(Color.WHITE);
          topPaint.setStyle(Paint.Style.FILL);
          topPaint.setTextSize(topTextView.getTextSize());
          topPaint.setTypeface(typeface);
  
          bottomPaint.setColor(Color.WHITE);
          bottomPaint.setStyle(Paint.Style.FILL);
          bottomPaint.setTextSize(bottomTextView.getTextSize());
          bottomPaint.setTypeface(typeface);
  
          float topTextMeasurement = topPaint.measureText(topText);
          float bottomTextMeasurement = bottomPaint.measureText(bottomText);
  
          StaticLayout topLayout = new StaticLayout(topText, topPaint, canvas.getWidth(), Layout.Alignment.ALIGN_CENTER, 1.0f,
                  0.0f, false);
          StaticLayout bottomLayout = new StaticLayout(bottomText, bottomPaint, canvas.getWidth(), Layout.Alignment.ALIGN_CENTER,
                  1.0f, 0.0f, false);
  
          topText.toUpperCase();
          bottomText.toUpperCase();
  
          canvas.translate(0,0);
          topLayout.draw(canvas);
  
          canvas.translate(0, canvas.getHeight() - 210);
          bottomLayout.draw(canvas);
          counter++;
  
          File file;
          Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
  
          String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath();
          file = new File(path + "/SimpliMeme/" + timeStamp + "-" + counter + ".jpg");
          file.getParentFile().mkdir();
  
          try {
              OutputStream stream = new FileOutputStream(file);
              mutableBitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
              stream.flush();
              stream.close();
              Toast.makeText(getContext(), "Top Text: " + String.valueOf(topTextMeasurement) + " and bottom text: " + String.valueOf(bottomTextMeasurement),
                      Toast.LENGTH_SHORT).show();
          } catch (IOException e) {
              e.printStackTrace();
          }
  
          Uri contentUri = Uri.fromFile(file);
          mediaScanIntent.setData(contentUri);
          Objects.requireNonNull(getContext()).sendBroadcast(mediaScanIntent);
      }
  </code></pre>