Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.icon);// 只读,不能直接在bmp上画
System.out.println("bmp.isMutable()=== " + bmp.isMutable());
imageView1.setImageBitmap(bmp); Bitmap newb = bmp.copy(Config.ARGB_8888, true);
System.out.println("newb.isMutable()=== " + newb.isMutable());
Canvas canvasTemp = new Canvas(newb);
canvasTemp.drawColor(Color.TRANSPARENT);
Paint p = new Paint(); String familyName = "楷体";
Typeface font = Typeface.createFromAsset(getAssets(), "COUR.TTF");
p.setColor(Color.RED); p.setTypeface(font);
p.setTextSize(22); canvasTemp.drawText("写字。。。", 0, 50, p);
// canvasTemp.drawBitmap(bmp, 50, 50, p);// 画图
imageView2.setImageBitmap(newb);
自动换行的一个很好的处理函数
public String[] StringFormat(String text, int maxWidth, int fontSize) {
String[] result = null;
Vector tempR = new Vector();
int lines = 0;
int len = text.length();
int index0 = 0;
int index1 = 0;
boolean wrap;
while (true) {
int widthes = 0;
wrap = false;
for (index0 = index1; index1 < len; index1++) {
if (text.charAt(index1) == '\n') {
index1++;
wrap = true;
break;
}
widthes = fontSize + widthes;
if (widthes > maxWidth) {
break;
}
}
lines++;
if (wrap) {
tempR.addElement(text.substring(index0, index1 - 1));
} else {
tempR.addElement(text.substring(index0, index1));
}
if (index1 >= len) {
break;
}
}
result = new String[lines];
tempR.copyInto(result);
return result;
}