android+paint+canvas+字符串+水印+BitmapFactory.Options

先不作总结,完成后项目后再说~

 

字符串相关

宽度:

  方法1:Paint.getTextWidths(text, widths)

  方法2:Rect rect = new Rect();              

      pFont.getTextBounds(text, 0, text.length(), rect);

      width=rect.width();

高度:

  m_txtPaint.getFontMetrics().descent - m_txtPaint.getFontMetrics().ascent

自动换行:

    使用Canvas的drawText绘制文本是不会自动换行的,StaticLayout是android中处理文字换行的一个工具类,

  StaticLayout staticLayout = new StaticLayout(str, textPaint, w, Layout.Alignment.ALIGN_OPPOSITE, 1.0F,0.0F, true);
  staticLayout.draw(canvas);

 

水印效果:

原理就是,先拿到原图的width、height,建一个同样宽高的bitmap叫newbitmap,利用newbitmap创建一个canvas,然后drawBitmap() 原图像,再drawBitmap()新的newbitmap

 

BitmapFactory.Options 

加载和显示图片是很消耗内存的一件事,BitmapFactory.Options 类,  允许我们定义图片以何种方式如何读到内存

 

相关链接:

http://blog.csdn.net/ruiyiin/article/details/8675361 // BitmapFactory.Options

http://www.cnblogs.com/meieiem/archive/2012/08/15/2639543.html //图片水印效果比较好的

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0915/1682.html //研究staticLayout

http://blog.csdn.net/linghu_java/article/details/8939952 //研究canvas很不错

http://www.cnblogs.com/feisky/archive/2010/01/10/1643460.html //也不错

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1105/1907.html //关于paint的研究,不错

http://blog.csdn.net/tianjf0514/article/details/7642656 //讲的比较基础

http://mikewang.blog.51cto.com/3826268/871765/ //讲的有点复杂

http://mikewang.blog.51cto.com/3826268/871765/ //讲fontMatrics

posted @ 2014-11-11 19:09  zyliang  阅读(676)  评论(0编辑  收藏  举报