前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发工程师文集-1 小时学会各种Drawable

Android开发工程师文集-1 小时学会各种Drawable

作者头像
达达前端
发布2019-07-03 12:16:51
3460
发布2019-07-03 12:16:51
举报
文章被收录于专栏:达达前端

前言

大家好,我是 Vic,今天给大家带来Android开发工程师文集-1 小时学会各种Drawable的概述,希望你们喜欢

Drawable介绍

Drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面。

view是面向用户的,是可见的控件,能给它添加点击事件。drawable则相反,不能面向,也不可见,也不能添加点击事件。

drawable有好多子类,drawable为抽象类,所以有很多子类来继承它。

主要原理方法

  • draw()
  • setBounds()

BitmapDrawable 巴特美drawable

该子类为bitmap的包装,可以保持原图片大小,填充,拉伸。

代码语言:javascript
复制
<bitmap
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:src="@drawable/ic_launcher"
 android:tileMode="mirror"//平铺
 android:antialias="true"//消除锯齿
 android:dither="true">
</bitmap>

LayerDrawable 勒儿drawable

该子类就是来管理一组drawable的,第一张图片的放置,那么第二张图片会在第一张图片上,由此依次放置。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
 <item
 android:top="40dp"
 android:left="40dp"
 android:src="@drawable/picture_1"
 android:gravity="center">
 </item>
 <item
 android:top="40dp"
 android:left="40dp"
 android:src="@drawable/picture_2"
 android:gravity="center">
 </item>
</layer-list>

StateListDrawable

该类StateListDrawable根据不同状态提供不同图片。

代码语言:javascript
复制
<?xml version="1.0" encoding="utr-8"?>
<selector
 xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:state_focused="true" android:drawable="@drawable/botton_1"/>
 <item android:state_pressed="true" android:drawable="@drawable/botton_2"/>
 <item android:state_selected="true" android="@drawable/botton_3"/>
 <item android:drawable="@drawable/botton_4"/>
</selector>

LevelListDrawable

该子类有不同的item -setlevel();

代码语言:javascript
复制
<level-list
 xmlns:android="http://schemas.android.om/apk/res/android">
 <item
  android:drawable="@drawable/off"
  android:minLevel="5"
  android:maxLevel="10">
 </item>
 <item
  android:drawable="@drawable/on"
  android:minLevel="10"
  android:maxLevel="20">
 </item>
</level-list>
代码语言:javascript
复制
public void On(View v){
 iv.setImageLevel( //int );
}

TransitionDrawable --- transi tion drawable

为LayerDrawable的子类,只有两张图片的变化,没有多个图片,LayerDrawable可以有多个item,而transitiondrawable只有两个item。

代码语言:javascript
复制
<transition
 xmlns:android="http://schemas.android.com/apk/res/android">
 <item android:drawable="@drawable/off">
 </item>
 <item android:drawable="@drawable/on">
 </item>
</transition>
代码语言:javascript
复制
public void On(View v){
 TransitionDrawable drawable=iv.getDrawable();
 //开启 startTransition();
 drawable.startTransition(2000);
}
public void Off(View v){
 TranstionDrawable drawable=iv.getDrawable();
 //关闭 reverseTransition();
 drawable.reverseTransition(2000);
}

InsertDrawable

InsertDrawable表示嵌入图片==padding

代码语言:javascript
复制
<inset 
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:drawable="@drawable/background"
 android:insetLeft="50dp"
 android:insetRight="50dp"
 android:insetTop="50dp"
 android:insetBottom="50dp">
</inset>

ClipDrawable 可累drawable

该ClipDrawabel是一种裁剪的形式,如同进度条。

代码语言:javascript
复制
<clip xmlns:android="http://schemas.android.com/apk/res/android"
 android:drawable="@drawable/picture"
 android:clipOrientation="horizontal"
 android:gravity="left"/>
代码语言:javascript
复制
ClipDrawable drawable=iv.getDrawable();
drawable.setLevel(5000);
//范围0-10000;

DIY的Drawable

自己动手试试吧 梳理: BitmapDrawable, LayerDrawable, StateListDreawable, LevelListDrawable, TransitionDrawable, InsertDrawable, ClipDrawable.

总结

  • 本文讲了Android开发工程师文集-1 小时学会各种Drawable,如果您还有更好地理解,欢迎沟通
  • 定位:分享 Android&Java知识点,有兴趣可以继续关注
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • Drawable介绍
      • 主要原理方法
        • BitmapDrawable 巴特美drawable
          • LayerDrawable 勒儿drawable
            • StateListDrawable
              • LevelListDrawable
                • TransitionDrawable --- transi tion drawable
                  • InsertDrawable
                    • ClipDrawable 可累drawable
                      • DIY的Drawable
                        • 总结
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档