Android之Drawable、Layout、Values、9图资源使用详解

字符串资源string

字符串资源文件位于res/values目录下,根元素是标记,在该元素中,使用
标记定义各字符串,其次为标记设置name属性,来指定字符串的名称。
如:
我的应用

注意:资源文件的文件名不能是大写,必须是小写字母a-z开头,由小写字母a-z,0-9或者"_"组成

在Activity中的使用getResources()方法获取资源管理器,然后使用它的的get方法获取对应的
资源文件,如String字符串,用getString,字符串数组使用getArray

  • 在XML文件中
id="@+id/textView1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/app_name" />

颜色资源

定义颜色资源文件
颜色资源文件位于res/values目录下
根元素是标记,该元素中,使用标记定义各颜色,标记设置name属性,来指定颜色的名称

颜色值定义说明:

#RGB 使用红绿蓝的值来表示颜色,其中红,绿,蓝都用0-f来表示 如要表示红用:#f00

#ARGB 使用透明和红蓝绿三原色来表示,其中透明度,红,绿和蓝均采用0-f来表
示,如,要表示半透明的红色,可以使用 #8f00

#RRGGBB , 使用红,绿,蓝三原色的值来表示颜色,与 #RGB 不同的是这里的红绿蓝使用00-ff
来表示,如要表示蓝色可以使用 #0000ff

#AARRGGBB 使用透明度及红绿蓝三原色来表示颜色,其中透明度、红、绿、蓝均采用00-ff来
表示。例如,要表示半透明的绿色可以使用 #8800ff00 , #00 表示完全透明 ff表示完全不透
明
  • XML中配置
<resources>
     <color name="blue">#ff0000color>
resources>
  • JAVA代码中使用:
getResources().getColor(R.color.title);
  • XML中使用:
"@+id/textView1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/app_name"
  android:textColor="@color/blue"/>

尺寸资源

尺寸资源也是进行Android应用开发时,比较常用的资源,它通常用于设置文字 的大小,组件
的间距等。

为了让程序拥有更好的屏幕适应,在指定控件和布局大小的时候最好使用match_parentwrap_content ,尽量避免将控件的宽和高设定一个固定值。不过在有些情况下,仅仅使用 match_parentwrap_content 确实无法满足我们的需求,这时就必须要给控件的宽或高指定一个固定值。

单位说明:

Px(pixels,像素): 每个px对应屏幕上的一个点。例如,320*480的屏幕在横向有320个像
素,在纵向有480个像素

In(Inches,英寸): 标准长度单位。每英寸等于2.54厘米。例如,形容手机屏幕大小,经
常说,3.2(英)寸,4寸等,都是指这个单位,如果手机的屏幕是4英寸,表示手机的屏幕
(可视区域)对角色长度是4*2.5410.16厘米

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

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

Sp(比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。
Mm(Millimeters,毫米):屏幕的物理长度单位

因为手机的分辨率各不相同,一个 200px 宽的按钮在低分辨率的手机上可能将近占据满屏,而
到了高分辨率的手机上可能只占据屏幕的一半,谷歌当然也意识到了这个令人头疼了问题,于是
为 Android引入了一套新的单位 dpsp

dp是密度和像素无关,也被称作dip,和px相比,它在不同密度的屏幕中的显示比例
将保持一致
sp 是可伸缩像素的意思,它采用了和 dp 同样的设计理念,解决了文字大小的适配问题
Android 中的密度就是屏幕每英寸所包含的像素数,通常以 dpi为单位。比如一个手机屏幕的
宽是 2 英寸长是 3 英寸,如果它的分辨率是 320*480 像素,那这个屏幕的密度就是 160dp
i,如果它的分辨率是 640*960,那这个屏幕的密度就是 320dpi,因此密度值越高的屏幕显
示的效果就越精细。

布局(Layout)资源

Android中最常用的一种资源,这里要提到的一个,布局文件中是可以包含其它布局文件的,语法为:

<include layout=”@layout/xxx”/>

数组资源

  • 数组资源文件位于res/values目录下,根元素是标记,在该元素中,包括以下3个子元素
<array/>             用于定义普通数组
<integer-array/>     用于定义整数数组
<string-array/>      用于定义字符串数组
  • 定义数组资源
<string-array name="items">
  <item>程序item>
  <item>手机item>
  <item>通话item>
  string-array>
  • 使用数组资源
String [] arr=getResources().getStringArray(R.array.items);
android:entries=”@array/items”

Drawable资源

说明:Drawable资源通常保存在res/drawable目录中,实际上是保存在res/drawable-
hdpi,res/drawable-ldpi,res/drawable-mdpi,/res/drawable-xhdp目录下,其中,分
别为高分辨率,低分辨率,中分辨率,超高分辨率的图片
在Activity中使用

常用的状态属性如下

  Android:state_checked 表示是否处于勾选状态,属性值为true/false
  Android:state_enabled 表示是否处于可用状态,属性值为true/false
  Android:state_focused 表示是否处于获得焦点状态,属性值为true/false
  Android:state_pressed 表示是否处于被按下状态,属性值为true/false
  Android:state_selected 表示是否处于被选中状态,属性值为true/false
注意背景设置为颜色时,不能在drawable选择器中android:drawable中直接设置颜色
必须在color中先建立颜色代码,然后在用android:drawable="@color/red"

ShapeDrawable资源

shape资源绘制一个特定的形状,比如矩形、椭圆等。如果你想自己动态的绘制二
位图形,那么我们就可以使用 ShapeDrawable资源对象,用 ShapeDrawable ,我们可以绘制我
们所能想象的形状。一个 ShapeDrawable 需要一个 Shape 对象来管理呈现资源到UI Screen ,
如果没有 Shape设置,那么会默认使用 RectShape对象。

ShapeDrawable 被定义在一个XML文件中,以元素起始。其内部的每一
Drawable 资源内嵌在元素中


  <shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="oval">
  
  <gradient
  android:startColor="#00f"
  android:endColor="#00f"
  android:angle="45"
  android:type="sweep"/>
  
  <padding android:left="7dp"
  android:top="7dp"
  android:right="7dp"
  android:bottom="7dp" />
  
  <corners android:radius="8dp" />
  shape>

Draw9-patch

  • 点九图,是Android开发中用到的一种特殊格式的图片,文件名以”.9.png“结尾。这种图片
    能告诉程序,图像哪一部分可以被拉升,哪一部分不能被拉升需要保持原有比列。运用点九图
    可以保证图片在不模糊变形的前提下做到自适应。
使用方法:

上、左部分规定了图像的可拉伸部分,而右、下部分规定了图像的内容区域。

与君共勉

我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天
这里写图片描述

你可能感兴趣的:(Android,基础)