• (3)android 图片编辑要注意的点


    1. 保存写入存储卡的权限

        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />

    测试过程中发现5.0之前的版本在读取图片数据时还需要android.permission.READ_EXTERNAL_STORAGE权限。

    2. 视图上显示的图片和保存时所用的图片分开,保存所用为原图,而显示所用图片可以控制解析时的采样率决定大小。标准以显示时的清晰度(越大越清晰)和编辑处理时的速率(越小越快)为准。

    3. 图片显示视图要注意适配不同大小的图片

    (1) 视图大小是固定的viewWidth,viewHeight

    (2) 图片以宽或高最大的一边不大于viewWidth或viewHeight进行缩放

    4. 有些图片可能比较大,因此读取到内存的时候要注意outofmemoryerror,这一点可以参考BitmapFactory类相关一文中介绍的方法处理。如果保存时出现这样的问题,那么最终保存下来的图片相比于原图是有一定的采样损失的。这是考虑到内存的一种必要妥协,但出现这种情况时原图一般很大,这样的损失往往视觉上无碍。

    5. 一般图片的方向为0,而全景照片是一种特殊类型的方向不为0的图片,为了保证内容的正确性需要进行方向处理,同时编辑有可能有旋转的操作,此时就更需要特殊处理。

    6. 图片编辑完成保存时,除了Bitmap源之外,还需要copy原图的Exif文件和写入新的数据库文件,可能有变化的就是方向值,宽高值,尤其方向值结合第5点需要慎重对待。

    7. 图片保存写入SD卡,需要判断存储盘是否挂载,是否有足够的存储空间。

    8. Bitmap和Canvas函数中有关bitmap的一些操作是对Bitmap复制操作,产生了一个新的对象,这比较耗时,且此时要注意对不再使用的bitmap进行recycle处理和置空。有些操作仍然是对原对象处理,此时要注意所有使用该Bitmap的地方都是操作后的bitmap。

    9. 关于bitmap的操作是耗时操作,此时应考虑使用多线程处理,但要注意原线程绘制时Bitmap一定要准备完毕。

  • 相关阅读:
    继承性03
    继承性
    Arrays与Math类
    Static关键字
    random模块,time模块,os模块,sys模块
    re模块
    冒泡排序、递归、二分查找
    内置函数
    生成器和生成器表达式
    迭代器
  • 原文地址:https://www.cnblogs.com/fordreamxin/p/4603687.html
Copyright © 2020-2023  润新知