我正在尝试制作包含表情符号图标的旋转TextView的屏幕截图。但在结果位图上,我看到表情符号没有旋转!为什么会这样?如何使用旋转的表情符号制作屏幕截图?
我的期望:
这就是我得到的:
我正在使用此方法获取视图的屏幕截图:
layout.setDrawingCacheEnabled(true);
layout.buildDrawingCache();
Bitmap bitmap = null;
if (layout.getDrawingCache() != null)
bitmap = layout.getDrawingCache().copy(Bitmap.Config.ARGB_8888, false);
layout.setDrawingCacheEnabled(false);
layout.destroyDrawingCache();
更新
正如我想的那样,如果我设置textView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
,那么即使在TextView中也不会旋转表情符号(如果你旋转TextView - 它们不会被旋转,它们只会像旋转木马一样移动),但我仍然不喜欢我真的明白为什么会发生这种情况,或表情符号的旋转(在第一张图片上)只是因为硬件加速?
答案 0 :(得分:1)
private Bitmap generateBitmapFromText(int size, String res) {
TextView tv = new TextView(getContext());
tv.setText(res);
tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, 150f);
tv.setTextColor(0xffffffff);
tv.measure(size, size);
int questionWidth = tv.getMeasuredWidth();
int questionHeight = tv.getMeasuredHeight();
Bitmap bitmap = Bitmap.createBitmap(questionWidth, questionHeight, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
tv.layout(0, 0, questionWidth, questionHeight);
tv.draw(c);
return bitmap;
}
然后我打电话
Bitmap bitmap = generateBitmapFromText(stickersStartingSize, res);
imageview.setImageBitmap(bitmap);