Android开发艺术探索<Drawable系列之一BitmapDrawable>
来源:互联网 发布:自学数据挖掘 编辑:程序博客网 时间:2024/06/06 06:08
简介:
Drawable表示一种图像的概念,但不完全指的是图片,通过颜色也可以构造出图像的效果。Drawable的宽高属性比较重要,获取方法如下。
注意:一张图片形成的Drawable,它的内部宽高就是图片的宽高,但是颜色形成的宽高,就没有这个概念,所以默认值都会返回-1,一般来说,Drawable没有大小概念,当用作View背景时,Drawable在显示的时候会被拉伸到View的同等大小。
/*** Returns the drawable's intrinsic width.* <p>* Intrinsic width is the width at which the drawable would like to be laid* out, including any inherent padding. If the drawable has no intrinsic* width, such as a solid color, this method returns -1.** @return the intrinsic width, or -1 if no intrinsic width*/publicint getIntrinsicWidth(){return-1;}/*** Returns the drawable's intrinsic height.* <p>* Intrinsic height is the height at which the drawable would like to be* laid out, including any inherent padding. If the drawable has no* intrinsic height, such as a solid color, this method returns -1.** @return the intrinsic height, or -1 if no intrinsic height*/publicint getIntrinsicHeight(){return-1;}
今天先来看BitMapDrawable:
BitmapDrawable表示的就是一张图片,可以直接引用最原始的图片,也可以通过XML来描述,对应的是<bitmap>标签。用XML描述的语法如下:
<?xml version="1.0" encoding="utf-8"?><bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:antialias="true" android:dither="true" android:filter="true" android:gravity="fill" android:mipMap="true" android:tileMode="clamp" android:src="@mipmap/ic_launcher"></bitmap>
相关属性分析:
- android:src 图片的资源ID
- android:antialias 开启抗锯齿功能,让图片变平滑,一定程度降低图片清晰度,但是可以忽略不计,一般都开启。
- android:dither 是否开启抖动效果。当图片的像素配置和手机屏幕的像素配置不一致的时候,开启选项可以让高质量的图片在低质量的屏幕上保持较好的效果,图片不会过于失真。 在Android中创建BitMap一般会选择ARGB8888模式,即ARGB4个通道各占8位,这种色彩模式下,一个像素所占的大小为4个字节,一个像素的位数总和越高,图 像也就越逼真。一般都开启
- android:filter 是够开启过滤效果,当图片尺寸被拉伸或者被压缩时,开启过滤效果可以保持较好的显示效果。
- android:mipMap 图片相关处理技术,纹理映射,使用不多。
比较重要的两个属性是gravity和tileMode- android:gravity 当图片小于容器的尺寸时,此选项对图片进行定位,不同的选项可以用 “ | ” 组合使用。
- android:tileMode 平铺模式:选项有dsiable,clamp,repeat,mirror
- disable是默认值,关闭平铺模式。
- 当开启平铺模式后,gravity属性会被忽略。
repeat模式就是简单的平铺:
mirror是一种镜像的平铺:
clamp是将图片四周的像素扩展到周围区域
0 0
- Android开发艺术探索<Drawable系列之一BitmapDrawable>
- Android开发艺术探索-Drawable
- Android开发艺术探索<Drawable系列之二ShapeDrawable>
- Android开发艺术探索<Drawable系列之三LayerDrawable>
- Android开发艺术探索<Drawable系列之四StateListDrawable >
- Android开发艺术探索<Drawable系列之五ScaleDrawable >
- Android开发艺术探索<Drawable系列之六ClipDrawabe >
- 开发艺术探索-- Drawable
- Android-开发艺术探索读书笔记之一
- Android 开发艺术探索笔记 第六章 Android的Drawable
- 《Android开发艺术探索》笔记——Drawable
- 第六章Andorid的Drawable(Android开发艺术探索)
- Android开发艺术探索_Android的Drawable(六)
- Android-drawable资源-BitmapDrawable
- 《Andorid开发艺术探索第六章》-Drawable
- Android开发艺术探索
- Android的Drawable之BitmapDrawable
- 《Android开发艺术探索》读书笔记 (6) 第6章 Android的Drawable
- UE4线程池源码分析和线程池的封装
- C++空指针调用成员函数
- 浅谈 MVP in Android
- Setting up CocoaPods master repo 卡着不动
- 使用springmvc拦截器+自定义注解做权限管理
- Android开发艺术探索<Drawable系列之一BitmapDrawable>
- 11上机练习4
- java导出功能(根据查询条件导出.csv格式)
- linux启动过详解
- 11章 5题
- 第十一章 上机
- android6.0增加的特性
- HTML5 - 新增属性
- hibernate实体对象的生命周期