java干货篇文字特效

立体效果的文字

主要使用了Graphics类中的setFont和setColor的方法,绘制多层字然后加上平移一个坐标即可实现多重叠加的效果,让人看起来就像是立体一样,详情请见源码

阴影效果的文字

和面一样,只是平移的方式有些不同,详情请见源码

倾斜效果的文字

主要使用的时Graphics2D类的shear方法,使绘图上下文倾斜,详情见源码
public abstract void shear(double shx,double shy)其中shx表示在正x轴方向移动坐标的乘数,可以作为其y坐标的函数

渐变效果的文字

主要使用了Graphics2D中的setPaint的方法,详情请见源码
public abstract void setPaint(Paint paint)paint封装了渐变颜色的Paint对象
其中Paint对象的创建是由GradientPaint初始化的,其中的构造函数如下:GradientPaint(float x1, float y1, Color color1, float x2, float y2, Color color2)

会变色的文字

这个主要使用了多线程的方式实现的,用多线程改变Color方法中的RGB的值,用Random在指定范围内任意取值然后组成了不同的颜色,详情请见源码

水印文字特效(源码)

水印文字主要通过改变了文字的透明度实现的,将文字绘制在图片上,然后改变图片的透明度,主要使用了Graphaics2D中的setComposite方法,定义如下:
public abstract void setComposite(Composite comp),其中Comp是AlphaComposite对象,可以使用以下两种方式创建

  • AlphaComposite alpha=AlphaComposite.getInstance(AlphaComposite.SRC_OVER,0.3f)获得一个SRC_OVER规则的对象
  • AlphaComposite alpha=AlphaComposite.SC_OVER.driver(0.3f)同上

动态绘制文本(源码)

主要使用BufferedReader缓冲流从指定文件中读取一个字符,然后使用线程一个一个的绘制在画板上,中间sleep了400ms,这样就能展示出动态的效果,还使用了System类的getProperty方法获得项目的路径,以下提供了两种方法读取文件,更多的读取方法请看我的博客文章

  • BufferedReader read=new BufferedReader(new FileReader(pathname))
  • BufferedReader read=new BufferedReader(new InputStreamReader(in))

由于都是比较简单的代码,这里不再贴出来le,有想要看的朋友,请点击上面的源码

本人博客

你可能感兴趣的:(java干货篇文字特效)