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,有想要看的朋友,请点击上面的源码

本人博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,126评论 25 709
  • 一、概述 1. 四线格与基线 小时候,我们在刚开始学习写字母时,用的本子是四线格的,我们必须把字母按照规则写在四线...
    addapp阅读 7,818评论 2 17
  • 系列文章之 Android中自定义View(一)系列文章之 Android中自定义View(二)系列文章之 And...
    YoungerDev阅读 4,486评论 3 11
  • 那身披黑色绣花袍 玲珑可爱的她 总会时不时的不请自来 推开我的窗户 把她那些玲珑可爱的伙伴 从星星的缝隙,月亮的阴...
    丁_香阅读 394评论 64 41
  • 我想我可以见到你吧! 嗯,,,不知道,也想不到,只是无数次想象遇见你时,会不会是这样子,符合你的标准: ...
    豆丁豆炒豆阅读 467评论 2 6