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;

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值