• Android Studio中BitmapDrawable的使用2-2


    (2)android:gravity属性

    该属性指定了位图的重心,即当位图的大小小于位图容器(例如ImageView等)时,位图在位图容器中的位置。在布局文件中定义一个ImageView作为位图容器,代码如图7所示。

    图7 ImageView代码

    其中,ImageView的宽度和高度都设置为“match_parent”,其“android:background”的属性是在“2.2.1 创建xml文件”中定义的BitmapDrawable,而与该BitmapDrawable关联的位图biaozhi的大小小于ImageView,此时可以通过设置BitmapDrawable的android:gravity属性的值来设置位图显示的位置,如图8所示。

    图8 android:gravity不同取值的效果

    其中,当android:gravity的值是“bottom”时,其效果如图8①所示;当android:gravity的值是“center”时,其效果如图8②所示;当android:gravity的值是“right”时,其效果如图8③所示。

    (3)android:antialias属性

    该属性的作用是打开或者关闭抗锯齿功能。

    相关链接1 抗锯齿功能,图片锯齿指的是图片的画面轮廓边缘出现不平滑的棱角。出现锯齿的原因是分辨率较小的图片被拉伸。抗锯齿功能则是对图片边缘进行柔化处理,使图片边缘看起来更平滑真实。

    在“(2)android:gravity属性”中提到的android:gravity属性,当该属性的值是“fill”时,会将图片在横轴和纵轴两个方向上拉伸,使其充满位图容器,效果如图9所示,此时可以看出,该位图的轮廓边缘出现了锯齿。

    图9 位图锯齿

    此时,可以为BitmapDrawable添加android:antialias属性来抗锯齿,代码如图10①所示。

    图10 打开抗锯齿功能

    其中,android:antialias属性的值是“true”时表示打开抗锯齿功能,该属性的值是“false”时,表示关闭抗锯齿功能。

    (4)android:filter属性

    android:filter属性的作用是启用或停用位图过滤。

    相关链接2 位图过滤,是把位图中不重要的像素都染成背景色,使得重要部分被凸显出来。当位图缩小或拉伸以使其外观平滑时使用过滤功能。

    添加该属性的代码如图10②所示,android:filter属性的值是“true”时表示打开位图过滤功能,该属性的值是“false”时,表示关闭位图过滤功能。

    (5)android:dither属性

    android:dither属性的作用的作用是启用或停用位图抖动。

    相关链接3 位图抖动,用于改善位图的显示效果的一种图像处理方式,使用扩散点的方式模拟位图中缺失的部分。

    添加该属性的代码如图10③所示,android:dither属性的值是“true”时表示打开位图抖动功能,该属性的值是“false”时,表示关闭位图抖动功能。在ImageView中使用图10所示的代码定义的BitmapDrawable的效果,如图11所示。

    图11 打开了三个属性的BitmapDrawable

  • 相关阅读:
    数据结构-树(Tree)
    [组件笔记]7.UnityEngine.MonoBehaviour
    每日汇评:黄金形态确认牛市,再次尝试上行2000美元
    商务之理解项目目标
    【TensorFlow深度学习】张量Broadcasting机制与数学运算实践
    请做好3年内随时失业的准备?
    2022上海生物发酵展-品牌企业纷纷入驻抢占先机,谁来赴盛宴参邀您的参与
    C/C++随笔:指针与const、const数组
    Qt实现TCP调试助手 - 简述如何在Qt中实现TCP多并发
    如何做好软件测试的需求分析工作呢?
  • 原文地址:https://blog.csdn.net/hou09tian/article/details/127466279