用户资源

字符串(string)资源


定义字符串资源文件,定义字符串名时,不能是用大写字母,a-z开头,0-9,_组成

使用字符串资源,布局文件或java代码(getResources().getString(R.string.字符串名);)中使用

颜色(color)资源


在Android中,颜色值通过RGB三原色和一个透明度(Alpha)值表示。它必须以井号#开头,后面接Alpha-Red-Green-Blue形式的内容。

#RGB            or        #ARGB(0-F,0表示完全透明,6半透明,F完全不透明)

#RRGGBB     or       #AARRGGBB (eg. #6600ff00半透明的绿色)

定义颜色资源文件:颜色资源文件位于res/values目录下,根元素是<resources></resources>标记,在该元素中,使用<color></color>标记设置name属性来指定颜色资源的名称,在起始标记<color>和结束标记</color>中间添加颜色值。

使用颜色资源:1. 在java文件中使用颜色资源的语法格式如下,[<package>.]R.color.颜色资源名 ,eg: setTextColor(getResources().getColor(R.color.title));

2.在XML文件中使用颜色资源的基本语法格式如下: @[<package>:]color/颜色资源名


尺寸(dimen)资源


1. Android支持的尺寸单位

在Android中,支持的常用尺寸单位如下:

px(Pixels,像素):每个px对应屏幕上的一个点

in(inches,英寸):标准长度单位,每英寸等于2.54厘米

pt(points,磅):屏幕物理长度单位,1/72英寸。

dip或dp(设置独立像素):一种基于屏幕密度的抽象单位,在每英寸160点的显示器上,1dip=1px,但随着屏幕密度的改变,dip与px的换算也会发生改变。

sp(比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。

mm(Millimeters,毫米):屏幕物理长度单位。


数组(array)资源


不推荐在java文件中定义数组,建议在资源文件定义

定义数组资源文件,name属性定义名称,在起始标记和终止标记中用<item>标记定义数组中的元素

<array/>子元素,定义普通类型数组

<integer-array/>子元素,定义整形数组

<string-array/>子元素,定义字符串数组


使用数组资源

<ListView>组件指定列表项android:entries="@array/数组资源名"


Drawable资源


图片资源和statelist资源两种

图片资源,在Android中,不仅可以将扩展名为.png、.jpg和.gif的普通图片作为图片资源,而且可以将扩展名为.9.png的9-Patch图片作为图片资源。

9-Patch图片是使用Android SDK中提供的工具Draw 9-patch生成的,该工具位于Android SDK安装目录下的tools目录中,双击draw9patch.bat即可打开该工具。使用该工具可以生成一个可以伸缩的标准PNG图像,Android会自动调整大小来容纳显示的内容。

在Java文件中访问图片资源的语法格式如下: [<package>.]R.drawable.<文件名>

setImageResource(R.drawable.名);

在XML文件中访问图片资源的基本语法格式如下: @[<package>:]drawable.文件名

android:background="@drawable/名"

以下转载自CSDN

版权声明:本文为CSDN博主「sunbinkang」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/sunbinkang/article/details/77331718

一、9patch图片的概念

1、9patch图片是andriod app开发里一种特殊的图片形式,文件的扩展名为:.9.png

2、9patch图片的作用就是在图片拉伸的时候保证其不会失真。所以我们使用.9图片,让图片在指定的位置拉伸和在指定的位置显示内容,这样图片的边边角角就不会出现失真了。

二、使用.9图片和不使用的差异

1、9patch和一般图片的区别在于.9图片有四条黑边,而一般的图片没有,这四条黑边就是用来拉伸和指定显示位置的。

2、使用.9图片后,整个图片应该是包裹着你想要显示的内容的,而没有使用的话整个控件布局看起来特别糟糕。


1.上图使用了.9图片作为textview的背景


2.上图是使用系统的ic_launcher图片显示的效果

三、绘制.9图片

绘制之前先来说一下.9图片的四条黑边的意义,每条黑边的意义都不一样。

顶部:在水平拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸

左边:在竖直拉伸的时候,保持其他位置不动,只在这个点的区域做无限的延伸

底部:在水平拉伸的时候,指定图片里的内容显示的区域

右边:在竖直拉伸的时候,指定图片里的内容显示的区域


3.   .9图片的制作

详细解释一下这里的四条黑边:

1.首先看到图3,ic_launcher图片的上边有一条小小的黑边,黑边的长度对应的区域就是上面一条窄窄的绿条,在布局的时候会根据图片上的内容自动横向拉伸这条窄窄的区域,图片横向的其他位置保持原状不进行拉伸,从而不失真。(记住这时候不要去管下面图片的黑边)

2.再看图3的左边有一条小小的黑边,黑边的长度对应的区域就是上面一条较宽的绿条,在布局的时候会根据图片上在纵向的内容自动纵向拉伸这条较宽的区域,图片纵向的其他位置保持原状不进行拉伸。(记住这时候不要去管右边的黑边)

3.右边的黑边:指定图片里的内容显示的纵向区域

4.下边的黑边:指定图片里的内容显示的横向区域

1、使用Android Studio工具制作.9图片


Android Studio中天生就自带了.9的绘制工具

将一张ic_launcher.png图片放到drawable文件夹下,右键这张图片,选择create 9-Patch file...

这里会选择.9图片的路径和命名(这里就不管,默认保存),点击OK


drawable下就多了一张.9.png的图片。可以把原图ic_launcher.png删了。

双击点击.9.png,我们可以看到左边是对图片的操作界面,右边则是实时的显示界面。接下来,我们要对图片进行描边了,描边之前一定要清楚四条边的含义,上左控制拉伸位置,下右控制内容显示位置。

描边时,按下鼠标左键,然后放在图片边界移动就能描边了,要是想要去掉黑边,可以按下Shift键,然后点击鼠标左键。

我们先绘制左上两边,控制拉伸位置,如下绘制完成了之后,可以看右边的阅览图,明显比没有绘制时边角的清晰度更高。

绘制完了图片的拉伸区域之后,我们还需要绘制图片包裹的内容的显示区域,如果没有绘制的话,里边的内容是会从左到右依次显示,这样有时达不到我们想要的效果。


通过对四条边的描黑边处理,我们就成功了避免了使用图片时拉伸边角的问题,拉伸的都是我们设置的区域,显示的也是我们想要显示的位置。

2、介绍一下点九图片绘图区下方的几个选框和滚动条的作用


 1.首先我们要把图片下方的show bad patches勾选上,此时(如果点九图片绘制有误的话)会看到图片出现

 报错的区域

 2.说明一下:图片下方的show content如果勾选上,会看到右侧的小图中出现蓝色的区域,代表的是可以自动

 拉伸的部分。

3.如果发现你的点9图片太小或者极小,可以拖动图片下方的zoom放大图片,然后就可以精确操作了。

3、使用Eclipse工具制作.9图片

在Eclipse中有提供专门的工具来制作.9图片。在你的sdk目录下的tools目录下,有一个叫做draw9patch.bat的文件,双击打开就可以使用了。

打开之后,我们可以直接将图片拖动到该工具之中,或者点击File,然后在导入进来。操作和android studio一样。

四、9patch图片使用总结

要想学会绘制.9图片一定要明白四条黑边的意义,还有一定要会使用draw9patch工具。

开发过程中,大部分的.9图片还是要我们程序员自己去绘制,当然你在公司的美工比较多的除外。所以学会绘制.9图片还是很重要的。

使用.9图片遇到错误千万别着急,先看一下错误提示,然后检查一下你绘制的图片有没有问题,实在解决不了可以发出来大家一起想办法。

五、关于在Android Studio中使用.9图片出错解决方案

用过Android Studio的童鞋都知道,AS中对.9的图片增加了安全检查机制,你的.9图片只要有不规范的地方都会给你编译报错,本人刚开始用AS时就深受其苦,后来才找到了解决办法。

解决方式主要有两种:

一是让AS取消掉对.9图片的安全检查。找到你app目录下的build.gradle文件,打开之后你可以在buildToolsVersion属性之下添加取消安全检查的两行代码。

// 取消掉系统对.9图片的检查

aaptOptions.cruncherEnabled = false

aaptOptions.useNewCruncher = false

二是 .9图片编译报错,那肯定说明你的.9图片制作不完善,你可以检查一下图片哪里没绘制好。你可以检查一下是否有重复绘制黑边,或者有哪条边没有绘制。这里注意:AS中要求.9图片的四条边都会绘制。





StateListDrawable资源是定义在XML文件中的Drawable对象,能根据状态来呈现不同的图像。

StateListDrawable资源文件同图片资源一样,也是放在res/drawable-xxx目录中。StateListDrawable资源文件的根元素为<selector></selector>,在该元素中可以包括多个<item></item>元素。每个Item元素可以设置以下两个属性。

android:colorandroid:drawable:用于指定颜色或者Drawable资源

android:state_xxx:用于指定一个特定的状态。



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容