Android——XML中的Bitmap
2016-10-27 本文已影响817人
CoorChice
个人博客CoorChice,https://chenbingx.github.io/ ,最新文章将会首发CoorChice的博客,欢迎探索哦 !
同时,搜索微信公众号CoorChice
,或扫描文章末尾二维码,可以关注我的微信公众号。同期文章也将会优先推送到微信公众号中,以提醒您有新鲜文章出炉。
在xml中的drawable/目录下可以创建Bitmap资源,这样可以将一张图片直接转换成bitmap,并给它设置一些属性,它指向一个BitmapDrawable对象。#调用方法## 在xml中:
格式: @[package:]drawable/filename
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/bitmap"/>
在Java中:
格式:
R.drawable.filenameResources res =getResources();
Drawable drawable = res.getDrawable(R.drawable.bitmap);
语法
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@[package:]drawable/drawable_resource"
android:antialias=["true" | "false"]
android:dither=["true" | "false"]
android:filter=["true" | "false"]
android:gravity=["top" | "bottom" | "left" | "right" | "center_vertical" | "fill_vertical" | "center_horizontal" | "fill_horizontal" | "center" | "fill" | "clip_vertical" | "clip_horizontal"]
android:mipMap=["true" | "false"]
android:tileMode=["disabled" | "clamp" | "repeat" | "mirror"] />
** 常用的9个属性:**
属性 | 作用 |
---|---|
src | 在这里引用图片资源 |
antialias | 开启或关闭抗锯齿 |
dither | 开启或关闭图像抖动。当使用图片的dpi和屏幕不匹配时,开启图像抖动可以获得更好的显示效果 |
filter | 开启或关闭滤镜。当需要对图片进行缩放操作时,开启滤镜可以使图片更加平滑 |
tiltMode | 贴图模式。详细见下文。该属性与gravity是互斥的。 |
gravity | 重心。详细见下文。该属性与tileMode是互斥的。 |
tint | 设置着色。有种盖一个色层在图片上的感觉。 |
tintMode | 设置着色模式。详细见下文。 |
mipMap | 是否将图片标记为mipmap,使用mipmap能够提高显示性能,默认为false |
android:tileMode属性贴图模式有以下几种:
值 | 效果 |
---|---|
clamp | 当图片>容器时,图片多余的部分会被截去;当图片<容器时,会复制图片的边缘部分填充空白 |
disable | 图片会根据容器大小进行缩放。这是默认值 |
repeat | 图片会重复填充满容器。但是当图片>容器时,多余部分会被截去 |
mirror | 图片会以镜像重复的形式填满容器。同样,当图片>容器时,多余部分会被截去 |
android:gravity属性当图片<容器时,重心决定了它在容器中的位置。重心有以下几种:
值 | 效果 |
---|---|
top | 顶部 |
bottom | 底部 |
left | 左边 |
right | 右边 |
center | 中心 |
center_vertical | 垂直中心 |
center_horizontal | 水平中心 |
fill | 充满容器,和tileMode="disable"是一个效果 |
fill_vertical | 充满垂直方向 |
fill_horizontal | 充满水平方向 |
clip_vertical | 搞不懂是什么鬼?求大神解答 |
clip_horizontal | 搞不懂是什么鬼?求大神解答 |
android:tintMode属性着色模式有以下几种:
值 | 效果 |
---|---|
add | |
src_in | |
src_over | |
src_atop | 以上几种全把图片给遮住了,看不出有什么差别。求指导! |
mutiply | 着色与透明度相结合,相当于在图片上盖了一层不是很深的颜色 |
screen | 同上,但是颜色会更浅 |
一个例子
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:
android="http://schemas.android.com/apk/res/android"
android:alpha="1"
android:antialias="true"
android:dither="true"
android:filter="true"
android:gravity="clip_vertical"
android:src="@drawable/share"
android:tint="#fc747e"
android:tintMode="multiply" />
效果图:
效果图
CoorChice的公众号