android paint设置字体 中文字体 楷体 和自动换行方法(zhuan)

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<String> tempR = new Vector<String>();
 
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;
 
} 

你可能感兴趣的:(android)