0
我试图获取TextView的位图表示。我试图同时使用setDrawingCacheEnabled
方法和View.draw(canvas)
方法,在这两种情况下我都没有看到任何错误,但我也没有得到任何实际的绘图。这是我的View.draw(canvas)方法的代码。有什么明显的我可以忽略。我觉得我完全按照规定来做这件事。我将结果保存到SD卡上的位图文件中,它只是一个没有任何文本的黑色矩形。TextView未绘制到画布中
我能想到的唯一的事情就是这是一个没有附加到任何父级的TextView。这是否有问题?
Constants.setCViewAndRenderFonts(Main.this, R.layout.preview_whiteboard);
Bitmap b = Bitmap.createBitmap(1280, 720, Config.ARGB_8888);
Canvas cs = new Canvas(b);
TextView tv = new TextView(Main.this);
//tv.setDrawingCacheEnabled(true);
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
tv.setLayoutParams(lp);
//tv.setTypeface(Constants.getTypeFace("bold", Main.this));
tv.setTextSize(68);
//tv.setRotation(-4.0f);
try{
String userComment = "Eenie Meanie Miney Moe, Catch a Tiger by its toe (do Tigers have toes??";
tv.setText(userComment);
}catch(Exception e){
L.e("can't get quote " + e);
}
tv.setTextColor(0xFFAAAAAA);
//tv.buildDrawingCache();
//Bitmap b = tv.getDrawingCache();
tv.draw(cs);
((ImageView)findViewById(R.id.preview)).setBackground(BPCBitmapFactory.getDrawableFromBitmap(Main.this, b));
myApp.resetUser().saveUserBitmap(b);