zoukankan      html  css  js  c++  java
  • View的setLayerType() , setDrawingCacheEnabled() 方法用法

    一、Android开发:用getDrawingCache方法获取ImageView中的图像需要注意的问题
    http://www.linuxidc.com/Linux/2011-09/43131.htm

    1.     在调用getDrawingCache()方法从ImageView对象获取图像之前,一定要调用setDrawingCacheEnabled(true)方法:

                iv_photo.setDrawingCacheEnabled(true);

            否则,无法从ImageView对象iv_photo中获取图像;

    2.     在调用getDrawingCache()方法从ImageView对象获取图像之后,一定要调用setDrawingCacheEnabled(false)方法:

                iv_photo.setDrawingCacheEnabled(false);

            以清空画图缓冲区,否则,下一次从ImageView对象iv_photo中获取的图像,还是原来的图像。

        // ImageView对象(iv_photo)必须做如下设置后,才能获取其中的图像
    
        iv_photo.setDrawingCacheEnabled(true);
    
        // 在ImageView对象(iv_photo)被touch down的时候,获取ImageView中的图像
    
        obmp = Bitmap.createBitmap(iv_photo.getDrawingCache());
    
        //从ImaggeView对象中获取图像后,要记得调用setDrawingCacheEnabled(false)清空画图缓
    
        //冲区,否则,下一次用getDrawingCache()方法回去图像时,还是原来的图像
    
        iv_photo.setDrawingCacheEnabled(false);
    

      

    二、mView.setLayerType(View.LAYER_TYPE_HARDWARE, null); 

    Android应用程序UI硬件加速渲染的动画执行过程分析

    http://blog.csdn.net/luoshengyang/article/details/46449677

    http://blog.csdn.net/luoshengyang/article/details/45601143

    我们提到了Render Thread对动画显示的两个优化。第一个优化是在动画显示期间,临时将动画的目标View的Layer Type设置为LAYER_TYPE_HARDWARE,这样就可以使得目标View以Open GL里面的Frame Buffer Object(FBO)进行渲染。这种优化的效果就如Render Thread直接以Open GL里面的Texture来渲染TextureView一样。第二个优化是在Main Thread不需要参与动画的显示过程时,动画就会被注册到Render Thread中,这样动画的计算和显示过程就完全由Render Thread来负责。这种优化带来的好处就是在动画显示期间,Main Thread可以去处理其它的用户输入,而且动画的显示也会更加流畅。

    有了这个ViewPropertyAnimator对象之后,就可以调用它的成员函数withLayer将它关联的View的Layer Type设置为LAYER_TYPE_HARDWARE

    mView.setLayerType(View.LAYER_TYPE_HARDWARE, null);  

    可以看到:

           1. 在动画开始显示之前,目标View的Layer Type会被设置为LAYER_TYPE_HARDWARE,并且它的成员函数buildLayer会被调用来创建一个Layer。

           2. 在动画结束显示之后,目标View的Layer Type会被恢复为它之前的Layer Type。注意,这里调用目标View的成员函数getLayerType获得的是它的Layer Type未被设置为LAYER_TYPE_HARDWARE的Layer Type。

  • 相关阅读:
    文件的类型
    读取文件,并按原格式输出文件内容的三种方式
    react hook代码框架
    器具的行为模式
    设计模式
    cpu 内存 机器语言 汇编 高级语言 平台之间的关系
    操作系统之内存
    操作系统之文件
    操作系统之IO
    七层模型之应用层
  • 原文地址:https://www.cnblogs.com/bluestorm/p/6930097.html
Copyright © 2011-2022 走看看