前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android开发笔记(七)初识Drawable

Android开发笔记(七)初识Drawable

作者头像
aqi00
发布2019-01-18 10:33:03
6690
发布2019-01-18 10:33:03
举报
文章被收录于专栏:老欧说安卓老欧说安卓

什么是Drawable

Android把所有显示出来的图形都抽象为Drawable(该单词意思就是“可绘制的”),这里的图形不只是图片,还包括色块、画板、背景等等。android.graphics.drawable源码目录下的drawable有十几种,博主就不一一介绍了,只说说一些常见的用法,以及容易弄错的地方。

Drawable资源目录

drawable文件放在res目录的各个drawable目录下,\res\drawable一般放的是描述性的xml文件,图片文件一般放在具体分辨率的drawable目录下。例如 drawable-ldpi里面主要放低分辨率的图片,如QVGA(240×320) drawable-mdpi里面主要放中等分辨率的图片,如HVGA(320×480) drawable-hdpi里面主要放高分辨率的图片,如WVGA(480×800),FWVGA(480×854) drawable-xhdpi里面主要放加高分辨率的图片,如Nexus(720×1280)以上分辨率 drawable-xxhdpi里面主要放超高分辨率的图片,如Nexus(1080×1920)以上分辨率

基本上分辨率每加大一级,宽度和高度就要加大二分之一像素。如果各目录存在同名图片,则Android会根据手机的分辨率来分别适配对应文件夹里的图片。所以在开发APP时,为了兼容不同的手机屏幕,根据需求在不同目录存放不同大小的图片,才能达到最合适的显示效果。

比如说,我在drawable-hdpi放了一张背景图片bg.png(分辨率480×800),其他目录就没放,使用分辨率480×800的手机查看该APP是没有问题的,但是现在有一台分辨率高的手机如720×1280,在这个高分辨率手机上查看APP,就会发现背景图片有点模糊,原因是Android为了bg.png适配屏幕,把bg.png拉伸到了720×1280,拉伸的后果便是图片糊掉了。

Drawable的状态

简单的drawable都是静态的图形,现在我们让它动一下,根据不同的触摸情况来变更图形,这时就要用到Drawable的一个子类StateListDrawable。StateListDrawable是在一个xml文件中定义不同状态下呈现的图像。 下面是一个例子btn_visit_selector.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<selector
  xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/common_jia_selected" />
    <item android:drawable="@drawable/common_jia_normal" />
</selector>

该xml中关键点是state_pressed,该值为true表示按下时显示common_jia_selected图像,其余情况显示common_jia_normal图像。 常用的状态位有: state_pressed:为true时表示按下,一般用于按钮Button,图形设置于android:background state_checked:为true时表示勾选,一般用于单选框RadioButton、复选框CheckBox,图形设置于android:drawableLeft state_selected:为true时表示选中,一般用于单选框RadioButton、复选框CheckBox,图形设置于android:background state_focused:为true时表示获取焦点,一般用于文本框EditText,图形设置于android:background

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年12月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是Drawable
  • Drawable资源目录
  • Drawable的状态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档