我有一个问题要问。我只想在以下代码中向位图添加文本。当我调试到Bitmap bmp = bmp1.copy(bmp1.getConfig(), true);
时,在观察窗口一切正常,我可以看到640和480的宽度和高度。
但在执行复制方法后,它将Bitmap返回到bmp,但是bmp的宽度和高度为-1和-1,并且无法添加文本。可能有些人告诉我为什么以及如何解决这个问题。非常感谢
String strPath=Environment.getExternalStorageDirectory().toString();
String strFileNameIn="aaa.jpg";
File inFile=new File(strPath+File.separator+strFileNameIn);
try {
if (inFile.exists()) {
FileInputStream inStream = new FileInputStream(inFile);
BitmapDrawable bmpDraw = new BitmapDrawable(inStream);
Bitmap bmp1 = bmpDraw.getBitmap();
Bitmap bmp = bmp1.copy(bmp1.getConfig(), true);
Canvas cv = new Canvas(bmp);
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strText = sDateFormat.format(new Date());
Paint p = new Paint();
p.setColor(Color.RED);
cv.drawText(strText, 0, 0, p);
cv.save(Canvas.ALL_SAVE_FLAG);
cv.restore();
}
} catch (Exception e) {
String strMsg = e.getMessage();
}
答案 0 :(得分:0)
使用bitmapfactory可以更轻松地获取位图。
这个怎么样:
Bitmap bitmap = BitmapFactory.decodeFile("your file");
if (bitmap != null) {
Paint p = new Paint();
Canvas cv = new Canvas();
cv.drawBitmap(bitmap, 0, 0, p);
SimpleDateFormat sDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strText = sDateFormat.format(new Date());
p.setColor(Color.RED);
cv.drawText(strText, 0, 0, p);
cv.save(Canvas.ALL_SAVE_FLAG);
cv.restore();
}