Android开发工程师文集-1 小时学会各种Drawable
前言
大家好,给大家带来Android开发工程师文集-1 小时学会各种Drawable的概述,希望你们喜欢
Drawable介绍
Drawable为抽象类,drawable与view有区别的地方,主要是体现事件和交互性上面。
view是面向用户的,是可见的控件,能给它添加点击事件。drawable则相反,不能面向,也不可见,也不能添加点击事件。
drawable有好多子类,drawable为抽象类,所以有很多子类来继承它。
主要原理方法
- draw()
- setBounds()
BitmapDrawable 巴特美drawable
该子类为bitmap的包装,可以保持原图片大小,填充,拉伸。
<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的,第一张图片的放置,那么第二张图片会在第一张图片上,由此依次放置。
<?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根据不同状态提供不同图片。
<?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();
<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>
public void On(View v){
iv.setImageLevel( //int );
}
TransitionDrawable --- transi tion drawable
为LayerDrawable的子类,只有两张图片的变化,没有多个图片,LayerDrawable可以有多个item,而transitiondrawable只有两个item。
<transition
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/off">
</item>
<item android:drawable="@drawable/on">
</item>
</transition>
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
<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是一种裁剪的形式,如同进度条。
<clip xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/picture"
android:clipOrientation="horizontal"
android:gravity="left"/>
ClipDrawable drawable=iv.getDrawable();
drawable.setLevel(5000);
//范围0-10000;
DIY的Drawable
自己动手试试吧
梳理:
BitmapDrawable,
LayerDrawable,
StateListDreawable,
LevelListDrawable,
TransitionDrawable,
InsertDrawable,
ClipDrawable.
总结
- 本文讲了Android开发工程师文集-1 小时学会各种Drawable,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android&Java知识点,有兴趣可以继续关注
Android开发工程师文集-1 小时学会各种Drawable的更多相关文章
- Android开发工程师文集-1 小时学会Widget小组件开发
前言 大家好,给大家带来Android开发工程师文集-1 小时学会Widget小组件开发的概述,希望你们喜欢 学会用Widget (小组件) Widget小组件很方便,很快捷,可以个性化,自己定制,相 ...
- Android开发工程师文集-1 小时学会SQLite
前言 大家好,给大家带来Android开发工程师文集-1 小时学会SQLite的概述,希望你们喜欢 内容 什么是Sqlite: 效率高,开源,小型,程序驱动,支持事务操作,无数据类型,可嵌入的关系型数 ...
- Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式
Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...
- Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解
前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activ ...
- Android开发工程师文集-相关控件的讲解,五大布局
前言 大家好,给大家带来Android开发工程师文集-相关控件的讲解,五大布局的概述,希望你们喜欢 TextView控件 TextView控件有哪些属性: android:id->控件的id a ...
- Android开发工程师文集-layout_weight讲解
前言 大家好,给大家带来Android开发工程师文集-layout_weight讲解的概述,希望你们喜欢 Layout_weight的相关代码展示 <TextView android:layou ...
- Android开发工程师文集-Android知识点讲解
前言 大家好,给大家带来Android开发工程师文集-Android知识点讲解的概述,希望你们喜欢 WebView讲解 一般通过Intent调用系统的浏览器: Uri uri = Uri.parse( ...
- Android开发工程师文集-提示框,菜单,数据存储,组件篇
提示框,菜单,数据存储,组件篇 Toast Toast.makeText(context, text, 时间).show(); setDuration();//设置时间 setGravity();// ...
- 帮朋友急招PHP、Android开发工程师 西安 工资8k-12k
PHP高级工程师岗位要求: 1. 有两年以上PHP开发经验, 2. 精通PHP+MySQL程序设计及开发,拥有良好的代码习惯,要求结构清晰,命名规范,逻辑性强,代码冗余率低. 3. 熟悉面向对象的软件 ...
随机推荐
- 002之MFCSocket异步编程
当今的网络程序通用体系结构大多为C/S模式,服务器监听收到来自客户端的请求,然后响应并作出应答. 界面对话框如下,输入IP信息进行通信后再进行连接,连接成功即可开始通信.左侧为客户端,右侧为服务端. ...
- jmeter 的安装与配置
环境配置: 操作系统:win10 JDK:1.8 jmeter:5.0 jmeter 是 java 程序.所以要运行 jmeter 需要先安装配置 jdk. 1.安装配置 jdk 官方网站下载 jdk ...
- linux 强制删除yum安装的php7.2
由于支付宝SDK只支持php7.1,因为需要删除之前安装的7.2版,进行降级.通过yum remove不能完全删除php,必须通过rpm方式卸载.由于php安装模块间有依赖,因此需要按顺序进行卸载.如 ...
- pynlpir 报错 Cannot Save user dictionary 原因与解决方法
在使用pynlpir和用户自定义词典进行分词时,如果报出如下错误: [2017-12-09 18:05:51] Cannot Save user dictionary Cannot write log ...
- week06 12 我们准备数据 前端调用rpc 前后端联调一下
用postman发送请求 出现一个问题 我在return结果前 要将数据转换成字典 所以我们用json.dumps()后再json.load()回来 这样就避免了这个问题 因为数据结构的数据 比如li ...
- request设置cookies
mycookie = { "PHPSESSID":"56v9clgo1kdfo3q5q8ck0aaaaa" } request.get(url,cookies ...
- python入门(二):isinstance、内置函数、常用运算等
1. isinstance(变量名,类型) #判断什么类型 ps: 只支持输入两个参数,输入3个参数会报错 >>> isin ...
- Kafka自带zookeeper报错INFO Got user-level KeeperException when processing xxx Error Path:/brokers Error:KeeperErrorCode = NodeExists for /brokers (org.apache.zookeeper.server.PrepRequestProcessor)
问题描述: 按照kafka官方文档的操作步骤,解压kafka压缩包后.依次启动zookeeper,和kafka服务 kafka服务启动后,查看到zookeeper日志里有以下异常 问题原因及解决办法: ...
- js正则积累
判断是否为数字 function isNumber(val){ var regPos = /^\d+(\.\d+)?$/; //非负浮点数 var regNeg = /^(-(([0-9]+\.[0- ...
- Python+Selenium学习--控制浏览器控制条
场景 有时候web 页面上的元素并非直接可见的,就算把浏览器最大化,我们依然需要拖动滚动条才能看到想要操作的元素,这个时候就要控制页面滚动条的拖动,但滚动条并非页面上的元素,可以借助JavaScrip ...