Following Snippet will give you some pointers
Here come your logic.
Here i am loading png file from drawable resource.You need to fetch it from directory.
If you want to make it more attractive Use Custom fonts by saving them in Assets/fonts
Don't directly hard-code Text you want to put rather load it from somewhere.
Use some different color.
I have manually set the Text Size .You should put some logic (Dont hard-code it)
In drawText i have harddoded Text height as 30.You should apply some logic to get Text Height.
Finally You have Background Bitmap save it.
ImageView imageView = (ImageView) findViewById(R.id.image);
Bitmap background = BitmapFactory.decodeResource(getResources(), R.drawable.sample).copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(background);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.WHITE);
paint.setStyle(Style.FILL);
paint.setTextSize(50);
paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK);
canvas.drawText("Hello Image", (background.getWidth() - paint.measureText("Hello Image")) / 2, background.getHeight() - 30, paint);
imageView.setImageBitmap(background);