1.概述

  在Android工程开发中设计软件UI,我们会大量使用外部的资源,例如图片、图标、颜色、动画、自定义属性、数组、音频视频等等。使用AndroidStudio环境开发时,资源文件被集中放置在res目录下,res目录是在main目录下,与代码java目录同级的文件夹。当建立一个新工程时,AndroidStudio会直接帮助我们在res目录下建立目录drawable(图片、图标)、layout(布局)、mipmap(图片)、values(数值)。 mipmap分为mipmap-mdpi、mipmap-hdpi、mipmap-xhdpi、mipmap-xxhdpi、mipmap-xxxhdpi目录,mipmap-mdpi目录下的图片适配在480*320屏幕下适用。  values目录下存在colors、dimens、strings、styles文件,对应存放颜色、尺寸、字符串、自定义风格资源。  博客中UI资源一系列博文主要讲解,这些目录下设置文件在何处使用?如何建立?如何修改?

2.Drawable资源

  drawable目录下可以放置两类文件,一种是图片资源 png位图,一种是xml绘制脚本文件。在drawable目录下的图片资源不需要区分适配屏幕,Android系统会依据使用屏幕自动配置清晰图片的尺寸,这个不是本节的重点,会放在mipmap中再讲解。 drawable目录下的xml文件是生产文件的格式,可以利用文件生成多种Drawable实例(矢量图)。包括Layer-List、State-List、Level-List、Transition-Drawable、Inset-Drawable、Clip-Drawable、Scale-Drawable、Shape-Drawable,其中Shape-Drawable, State-Drawable是我们今后会经常用到的Drawable。  在代码中利用资源类 Resources 对绘制脚本文件引用,例如

Drawable myDraw =
(Drawale)getResources().getDrawable(R.drawable.shape);

或者在布局中直接引用该drawable文件,例如

android:background ="@drawable/shape"

2.1 ShapeDrawable

  创建一个 ShapeDrawable实例,可以生成一个图形边框或者某个形状的色块,多用于控件或布局background和src设置,较常用场景有背景设置圆弧边框、设置消息脚标、设置按钮背景。使用ShapeDrawable实现一些形状图形, 或则颜色渐变效果, 相比PNG图片, 占用空间更小; 相比自定义View, 实现起来更加简单。  先上一个简单的例子,
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"    android:shape="rectangle">    <solid android:color="#1858d6"/>    <corners android:radius="10dp"/>    <stroke android:color="#000000"        android:width="2dp"/>    <padding android:bottom="20dp"        android:left="15dp"        android:right="15dp"        android:top="30dp"/>shape>
  这是一个蓝色背景,有弧度,有上下左右内边距,有边框的长方形背景。   标签中含有以下设置标签。
<?xml version="1.0" encoding="utf-8"?>            <shape xmlns:android="http://schemas.android.com/apk/res/android"   android:shape="rectangle">                                   <corners android:bottomLeftRadius="5dip"        android:bottomRightRadius="5dip"        android:radius="5dip"        android:topLeftRadius="5dip"        android:topRightRadius="5dip"/>                                                            <gradient        android:angle="0"        android:centerColor="#000"        android:centerX="0.5"        android:centerY="0.5"        android:endColor="#FFF"        android:gradientRadius="20dip"        android:startColor="#000"        android:type="linear"        android:useLevel="true"/>            <paddings        android:bottom="5dip"        android:left="5dip"        android:right="5dip"        android:top="15dip"/>            <size        android:width="50dip"        android:height="10dip"/>                  <solid        android:color="@android:color/white"/>                                          <stroke         android:width="5dip"        android:color="#0000FF"        android:dashGap="2dip"        android:dashWidth="1dip"/>  shape>

参考博文地址:http://www.cnblogs.com/itgoyo/p/5855400.html

更多相关文章

  1. Android日记之2012\01\15
  2. 手动编译android项目
  3. ADB适用方法
  4. Android(安卓)APK自动化测试
  5. Android(安卓)带Lottie动画的导航栏
  6. app launcher 名称不是清单文件中的android:label
  7. android监听文件和目录的创建删除移动等事件
  8. sdcard
  9. 安卓(android)开发框架的说明1:基于Eclipse的安卓工程开发目录介绍

随机推荐

  1. 基于 Android(安卓)NDK 的学习之旅-----
  2. Android(安卓)Material Design控件之Navi
  3. 环境搭建好后的第一个Android(安卓)项目
  4. ListView监听OnItemClick无响应
  5. 腾讯微博android授权 SharedPreferences
  6. Android把View转换成Bitmap
  7. Android(安卓)教你打造炫酷的ViewPagerIn
  8. Android(安卓)JNI直接调用驱动程序
  9. Android(安卓)ScrollView中包含EditText
  10. 在Eclipse中对Android应用签名