我是靠谱客的博主 拼搏冬天,最近开发中收集的这篇文章主要介绍6.关于Drawable1.简单介绍2.常见子类3.自定义Drawable,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.简单介绍

  1. android.graphics.drawable.Drawable是一个可以在canvas上绘制的抽象概念;
  2. 通常用XML来定义,也可以用代码来创建(更复杂);
  3. 特点:比View成本低,非图片类型的Drawable占用空间小
/**
 * A Drawable is a general abstraction for "something that can be drawn."  Most
 * often you will deal with Drawable as the type of resource retrieved for
 * drawing things to the screen; the Drawable class provides a generic API for
 * dealing with an underlying visual resource that may take a variety of forms.
 * Unlike a {@link android.view.View}, a Drawable does not have any facility to
 * receive events or otherwise interact with the user.
 * **/
public abstract class Drawable {
	...
}

2.常见子类

  1. ShapeDrawable
    特殊形状,圆角矩形等等常见背景,常用xml来实现
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="@color/color_task_item_bg" />

    <stroke
        android:color="@color/color_task_item_bg" />

    <corners android:radius="40px" />

</shape>
  1. LayerDrawable
    进度条背景,xml应用较为广泛
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@android:id/background"
        android:drawable="@drawable/bg_pb_background"></item>

    <item android:id="@android:id/progress">
        <scale
            android:drawable="@drawable/bg_pb_progress"
            android:scaleWidth="100%" />
    </item>
</layer-list>
  1. BitmapDrawable
    用xml的形式来定义Image的各自属性,最后可以在布局文件中引用

3.自定义Drawable

自定义Drawable无法在xml中使用,所以其使用场景较少。关键点也是重写draw(canvas)方法,可以参考BitmapDrawable等具体子类等实现。

最后

以上就是拼搏冬天为你收集整理的6.关于Drawable1.简单介绍2.常见子类3.自定义Drawable的全部内容,希望文章能够帮你解决6.关于Drawable1.简单介绍2.常见子类3.自定义Drawable所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部