在为图片增加文字水印时,往往会遇到文字内容很长的情况,使用Canvas的drawText绘制文本是不会自动换行的,drawText也只显示一行,超出部分被隐藏在屏幕之外。怎样轻松实现类似于textView自动换行呢,那就是我们的StaticLayout可实现自动换行,不废话了,直接贴实现demo代码
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView imageView = (ImageView) findViewById(R.id.image); String text = "测试StaticLayout自动换行文字很长很长文字很长很长文字很长很长文字很长很长文字很长很长文字很长很长\n指定换行处"; imageView.setImageBitmap(createWatermark(R.drawable.a, text)); }
/** * * @param resources 这里是项目资源图片 如果是本地文件路径 则方法需要作相应的修改 * @param markText 水印文字 * @return */ public Bitmap createWatermark(int resources, String markText) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resources); // 获取图片的宽高 int bitmapWidth &