【问题标题】:Add text as a banner overlay on top of an image在图像顶部添加文本作为横幅覆盖
【发布时间】:2017-12-14 11:46:00
【问题描述】:

我在imageView 中有一张图片,我想在上面写一些标签,然后通过社交媒体或邮件发送。 他们有什么方法可以发送带有文本的图像(图像上的文本叠加)??

提前致谢

【问题讨论】:

  • 我认为这有助于完成任务link

标签: android image text overlay banner


【解决方案1】:

尝试在this之后的位图上绘制文本

 public Bitmap drawTextToBitmap(Context gContext, 
  int gResId, 
  String gText) {
  Resources resources = gContext.getResources();
  float scale = resources.getDisplayMetrics().density;
  Bitmap bitmap = 
      BitmapFactory.decodeResource(resources, gResId);

  android.graphics.Bitmap.Config bitmapConfig =
      bitmap.getConfig();
  // set default bitmap config if none
  if(bitmapConfig == null) {
    bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888;
  }
  // resource bitmaps are imutable, 
  // so we need to convert it to mutable one
  bitmap = bitmap.copy(bitmapConfig, true);

  Canvas canvas = new Canvas(bitmap);
  // new antialised Paint
  Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
  // text color - #3D3D3D
  paint.setColor(Color.rgb(61, 61, 61));
  // text size in pixels
  paint.setTextSize((int) (14 * scale));
  // text shadow
  paint.setShadowLayer(1f, 0f, 1f, Color.WHITE);

  // draw text to the Canvas center
  Rect bounds = new Rect();
  paint.getTextBounds(gText, 0, gText.length(), bounds);
  int x = (bitmap.getWidth() - bounds.width())/2;
  int y = (bitmap.getHeight() + bounds.height())/2;

  canvas.drawText(gText, x, y, paint);

  return bitmap;
}

【讨论】:

  • 首先,谢谢。其次,我已经有了图像视图和文本视图,我想将它作为一个图像导出,同时将文本视图的布局保持在它们的位置,这对我的情况有用吗??
  • 没有。您需要获取视图的绘图缓存。在此处关注此答案stackoverflow.com/questions/10988847/…
  • 你能提供更多细节吗??
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多