zoukankan      html  css  js  c++  java
  • 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

    1、以专家为榜样,不必自己重新探索
    2、解构技能,找出实现80%效果的那20%
    3、不要一心二用
    4、练习练习再练习!然后获得即时反馈
    5、坚持,不要在低谷期放弃
  • 相关阅读:
    linux常用命令
    TP5 使用额外查询
    高性能mysql[day 1]
    tp6 使用多模块/应用
    linux进程间通信的方式
    Mac将本地文件上传到Centos7(Linux)服务器上
    响应式Web设计:构建令人赞叹的Web应用程序的秘诀
    单页应用(SPA,Single-page-App)和多页应用(MPA,Multi-page App)的区别
    PWA(Progressive web apps),渐进式 Web 应用
    10年大佬博客
  • 原文地址:https://www.cnblogs.com/zhongyuan/p/4090308.html
Copyright © 2011-2022 走看看