因項目需求,將文本轉成圖片,發送到別的設備。用EditText+Spannable做了一個簡單的文本編輯器,可以設置字體,字體大小,加粗,斜體,文本前景色、背景色等等。但是發現,編輯器做好後,不知道怎麼將設置好樣式的內容轉成圖片,糾結了兩天了。
搞了幾天,最後還是同事幫忙找到了解決方法。使用DynamicLayout,可以直接將CharSequence中的樣式一起畫出來。
Bitmap bmp = Bitmap.createBitmap(areaWidth, areaHeight, Bitmap.Config.ARGB_8888);
Canvas canvasTemp = new Canvas(bmp);
canvasTemp.drawColor(Color.WHITE);
textPaint.setTypeface(font);
DynamicLayout dynamicLayout=new DynamicLayout(content,textPaint,areaWidth, Layout.Alignment.ALIGN_NORMAL,1.0f,1.0f,false);
dynamicLayout.draw(canvasTemp);