Android的应用资源-可绘制对象资源一

前言

这是android资源类型的第三篇文章,将学习使用android的可绘制资源对象 ,本篇的内容挺多的。

概述

首先来说一下可绘制资源吧,要不然都不知道我们要干啥,Android给出的解释是,可绘制对象资源是图形的一般概念,是指可在手机屏幕上绘制的图形,以及可以使用getDrawable(int)检索的或应用到拥有 android:drawable 和 android:icon 等属性的其他 XML 资源的图形,接下来我们将分类讲解android的可绘制资源。

可绘制对象资源

可绘制资源指的是存放在res/drawable文件夹下的位图资源,在使用的时候会编译成不同的Drawable对象,他们的使用方式也是相同的在xml文件中引用和在代码中使用,让我们来一个一个看看他们的真面目吧。

  • 位图文件
    这可能是开发者平时用的最多的类型了 ,在我们为ImageView设置背景的时候,我们会将图片资源放入到drawable文件夹中接着在布局的xml文件中使用,其中放在drawable文件夹中文件就是位图文件。
    在这里插入图片描述
    这里的one.png 就是一个位图文件。

编译资源类型:位图文件编译之后会指向BitmapDrawable的资源指针

使用示例:包括在xml文件中和在代码中的使用

//布局文件中通过@drawable/文件名使用
 <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/one" />
// kotlin代码中使用
val drawable: Drawable? = ResourcesCompat.getDrawable(resources, R.drawable.one, null)

  • xml位图
    xml位图是在xml文件中定义的资源,指向位图文件。实际上是原始文件的别名。xml可以指定位图的其他性质,例如抖动和层叠。
    在这里插入图片描述
    这就是一个xml位图

编译资源类型:位图文件编译之后会指向BitmapDrawable的资源指针

语法


<?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"] />

使用示例:包括在xml文件中和在代码中的使用

    //布局文件中通过@drawable/文件名使用
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bitmap_xml" />

使用可以参考 BitmapDrawable这个源文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值