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);