asysbang
标题:
文字特效
[打印本页]
作者:
admin
时间:
2014-2-13 16:56
标题:
文字特效
转载请注明
www.asysbang.com
可以考虑给文字加一些特效,这样看起来更酷
package com.asysbang.uidemo;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.EmbossMaskFilter;
import android.graphics.MaskFilter;
import android.graphics.Paint;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;
public class TextEffectView extends View {
private Paint textPaint;
private MaskFilter mEmboss;
private static final String text = "你好!今天是星期三!";
private static final int MSG_IN = 10;
private static final int EFFECT_SHOW_DELAY = 200;
private static final int TEXT_SIZE_1 = 80;
private static final int TEXT_SIZE_2 = 120;
private static final int START_X = 30;
private static final int START_Y = 400;
private int curPosition = 0;
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
curPosition++;
if (curPosition <= text.length() * 2) {
invalidate();
mHandler.sendEmptyMessageDelayed(MSG_IN, EFFECT_SHOW_DELAY);
}
}
};
public TextEffectView(Context context, AttributeSet attrs) {
super(context, attrs);
textPaint = new Paint();
textPaint.setColor(Color.CYAN);
textPaint.setStyle(Paint.Style.STROKE);
textPaint.setStrokeJoin(Paint.Join.ROUND);
textPaint.setStrokeCap(Paint.Cap.ROUND);
textPaint.setStrokeWidth(2);
mEmboss = new EmbossMaskFilter(new float[] { 1, 1, 1 },
0.4f, 6, 3.5f);
textPaint.setMaskFilter(mEmboss);
}
@Override
protected void onDraw(Canvas canvas) {
String str = text.substring(0, curPosition / 2);
System.out.println("==========" + str);
textPaint.setTextSize(TEXT_SIZE_1);
canvas.drawText(str, START_X, START_Y, textPaint);
if (curPosition % 2 > 0) {
textPaint.setTextSize(TEXT_SIZE_2);
String str1 = text.substring(curPosition / 2, curPosition / 2 + 1);
canvas.drawText(str1, START_X / 2 + TEXT_SIZE_2 - TEXT_SIZE_1 + TEXT_SIZE_1 * curPosition / 2, START_Y, textPaint);
}
}
public void textIn() {
mHandler.removeMessages(MSG_IN);
curPosition = 0;
mHandler.sendEmptyMessage(MSG_IN);
}
}
欢迎光临 asysbang (http://asysbang.com/)
Powered by Discuz! X2.5