Android——XML中的Bitmap

个人博客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" />

效果图:
img_efd296434f7b1624fcfaa98de78c598d.jpe
效果图
img_08b056b059ac831a2d371fa29bdef1e3.jpe
CoorChice的公众号
### 如何在 XML 中定义和使用 Bitmap 图像 #### 使用 `<bitmap>` 标签定义图像属性 为了更好地控制 Android 应用程序中的位图显示方式,`<bitmap>` 资源标签提供了多种配置选项来调整图像的行为。通过创建一个 `drawable` 文件夹下的 XML 文件并利用此标签,开发者能够指定诸如缩放、对齐和平铺模式等特性。 对于希望避免默认拉伸行为的情况,可以采用如下方法: ```xml <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image_resource" android:gravity="center" android:tileMode="disabled"/> ``` 上述代码片段展示了如何防止背景图片被自动拉伸到填充整个视图区域[^2]。这里的关键在于设置了 `tileMode` 属性为 `"disabled"` 来禁用平铺功能,并且指定了居中 (`"center"`) 的重力方向用于定位未填满部分的空白空间。 #### 控制图像展示样式 当需要实现特定视觉效果时——比如镜像翻转或是重复图案——则可进一步定制这些参数。例如,在某些场景下可能想要水平反转一张图标,则可以在相应的布局文件里加入这样的声明: ```xml <ImageView ... android:scaleType="matrix"> <bitmap android:src="@drawable/icon_to_mirror" android:pivotX="50%" android:scaleX="-1"/> </ImageView> ``` 这段示例说明了怎样应用矩阵变换以达到横向反向的效果;其中 `pivotX` 设置旋转中心点位置而负数形式的 `scaleX` 实现了左右颠倒的操作[^1]。 另外值得注意的是,直接作为控件背景加载的图形通常不具备灵活度较高的自定义能力,因此推荐先构建好带有明确特性的 drawable resource 再应用于 UI 组件上[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值