
res资源目录简介简单介绍Android工程中的资源目录resourcesres。Android里的资源指的是什么资源是指代码使用的附加文件和静态内容例如位图、布局定义、界面字符串、动画说明等。把资源放进对应的目录后可使用在项目 R 类中生成的资源 ID 来访问这些资源。形如 R.drawable.iconR.layout.main_activity。 R类是自动生成的。代表resources。分组资源类型将各类资源放入项目res/目录的特定子目录中。 子目录的名字特别重要。我们把不同的资源放到不同的子目录中。animator/用于定义属性动画的 XML 文件。anim/用于定义渐变动画的 XML 文件。属性动画也可保存在此目录中但为了区分这两种类型属性动画首选 animator/ 目录。color/用于定义颜色状态列表的 XML 文件。drawable/位图文件.png、.9.png、.jpg、.gif或编译为以下可绘制对象资源子类型的 XML 文件 位图文件、九宫格可调整大小的位图、状态列表、形状、动画可绘制对象、其他可绘制对象。mipmap/适用于不同启动器图标密度的可绘制对象文件。应用图标放这里。 mipmap后面跟着的dpi类别比如hdpi mdpi里面的图标尺寸大小是不同的。可以参考默认图标的大小来切App的图标。如果要省事可以用一个图标复制进各个目录中。layout/ 用于定义用户界面布局的 XML 文件。放 layout 文件。menu/ 用于定义应用菜单如选项菜单、上下文菜单或子菜单的 XML 文件。raw/需以原始形式保存的任意文件。如要使用原始 InputStream 打开这些资源请使用资源 ID即 R.raw.filename调用 Resources.openRawResource()。 但是如需访问原始文件名和文件层次结构则可以考虑将某些资源保存在 assets/ 目录而非 res/raw/下。assets/ 中的文件没有资源 ID因此只能使用 AssetManager 读取这些文件。values/包含字符串、整型数和颜色等简单值的 XML 文件。其他 res/ 子目录中的 XML 资源文件会根据 XML 文件名定义单个资源而 values/ 目录中的文件可描述多个资源。对于此目录中的文件resources stylebox-sizing: inherit; margin-top: 0px; margin-bottom: 0px;元素的每个子元素均会定义一个资源。例如string stylebox-sizing: inherit;元素会创建 R.string 资源color stylebox-sizing: inherit;元素会创建 R.color 资源。由于每个资源均使用自己的 XML 元素进行定义因此您可以随意命名文件并在某个文件中放入不同的资源类型。 但是您可能需要将独特的资源类型放在不同的文件中使其一目了然。 例如对于可在此目录中创建的资源下面给出了相应的文件名约定 arrays.xml资源数组类型数组。 colors.xml颜色值。 dimens.xml尺寸值。 strings.xml字符串值。 styles.xml样式。xml/可在运行时通过调用Resources.getXML()读取的任意 XML 文件。各种 XML 配置文件如可搜索配置都必须保存在此处。font/带有扩展名的字体文件如 .ttf、.otf 或 .ttc或包含 元素的 XML 文件。注意切勿将资源文件直接保存在 res/ 目录内因为这样会造成编译错误。最开始阶段我们接触比较多的是layout目录。如果要添加一些图片可以直接放进drawable目录。修改应用图标应该放进mipmap对应的目录。例如mipmap-hdpi里的图标是72x72像素的,mipmap-mdpi是48x48像素的。 图省事的话拿一个图标分别复制进mipmap的所有dpi目录里一定要统一文件名比如ic_your_launcher.png。 然后在清单文件AndroidManifest.xml中修改icon。applicationandroid:iconmipmap/ic_your_launcher后面如果我们要定义ButtonTextView的一些样式比如设置颜色背景。会接触到drawable目录。shape的绘制和使用工程目录中有一个drawable文件夹里面存放的是一些静态的图片资源文件。 比如位图文件.png、.9.png、.jpg、.gif或一些可绘制对象资源子类型的 XML 文件本文称为drawable文件。当我们想给button或者TextView设定背景时我们会想到纯色背景。如果要求圆角背景或是渐变色背景我们该如何实现呢 一种办法是制作相应的美术素材也就是切图。另一种办法是使用xml格式的资源文件。 本文要介绍的是shape。使用这类资源可以完成一些比较简单的美术设计。例子接下来我们新建一个shape试试要求带有外围边框有圆角里面用渐变色填充。 在res/drawable/目录中右键新建一个Drawable Resource file文件起名shape_rect_gradient_red.xml。 root element选择shape。代码?xml version1.0encodingutf-8?shape xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shaperectanglestrokeandroid:width2dpandroid:color#0E30B1/corners android:radius6dp/gradientandroid:centerColor#F55353android:endColor#F71515android:startColor#FD7575//shapeas的右边可以打开预览看看效果。 其中android:shaperectangle表示的是选择长方形的形状。stroke标签代表的是边框。里面设定边框宽度是2dp边框颜色是#0E30B1。corners标签代表的是圆角。如果不设置则默认为直角。这里我们设定圆角的半径为6dp。gradient表示渐变色。分别可以设置起始中间和结束的颜色值。在layout中给Button的background设置使用这个shape。xml的文件名就是它的资源名称。Buttonandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:backgrounddrawable/shape_rect_gradient_red/再稍微完善一下这个Button。Buttonandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:backgrounddrawable/shape_rect_gradient_redandroid:textRFDev btn 1android:textAllCapsfalseandroid:textColor#ffffff/运行一下可以看到效果。shape介绍shape又称为“形状可绘制对象”。为了简便以下都称作shape或者“shape文件”。 shape是一种在 XML 文件中定义的通用形状。经过编译后可以得到GradientDrawable对象。资源引用在 Java 中R.drawable.filename在 XML 中package:drawable/filename语法上面那个栗子我们认识了几个元素gradientcorners和stroke。下面是语法的详细介绍。?xml version1.0encodingutf-8?shapexmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shape[rectangle|oval|line|ring]cornersandroid:radiusintegerandroid:topLeftRadiusintegerandroid:topRightRadiusintegerandroid:bottomLeftRadiusintegerandroid:bottomRightRadiusinteger/gradientandroid:angleintegerandroid:centerXfloatandroid:centerYfloatandroid:centerColorintegerandroid:endColorcolorandroid:gradientRadiusintegerandroid:startColorcolorandroid:type[linear|radial|sweep]android:useLevel[true|false]/paddingandroid:leftintegerandroid:topintegerandroid:rightintegerandroid:bottominteger/sizeandroid:widthintegerandroid:heightinteger/solidandroid:colorcolor/strokeandroid:widthintegerandroid:colorcolorandroid:dashWidthintegerandroid:dashGapinteger//shape圆角背景的例子上文介绍了corners的用法。我们来看一个圆角背景的实现方法。 新建文件shape_btn_2_normal.xml?xml version1.0encodingutf-8?shape xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shaperectanglesolid android:color#6CB3DD/corners android:radius25dp//shape在layout中给TextView使用这个背景。TextViewandroid:idid/tv1android:layout_widthmatch_parentandroid:layout_height50dpandroid:backgrounddrawable/shape_btn_2_normalandroid:gravitycenterandroid:textRFDev 圆角背景TextView 1android:textColor#ffffff/TextView的高度设置成了50dp而背景的圆角半径设置成了25dp。 运行可以看到效果。如果想要渐变色再增加gradient的设置就好。代码中使用资源在java代码中使用资源比如在activity中设置背景。Resources resgetResources();Drawable shapeResourcesCompat.getDrawable(res,R.drawable.shape_btn_2_normal,getTheme());TextView tv(TextView)findViewById(R.id.tv1);tv.setBackground(shape);使用这种方式我们可以自己实现一些简单的按钮效果。更复杂的颜色和效果需要美术设计师的支持。环形的例子尺寸和长度自己设定。环形thumb_round_1.xml。?xml version1.0encodingutf-8?shape xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shapeovalsolid android:color#ffffff/strokeandroid:widthdimen/audio_seek_bar_thumb_ring_widthandroid:color#7095fc/sizeandroid:widthdimen/audio_seek_bar_thumb_sizeandroid:heightdimen/audio_seek_bar_thumb_size//shape带渐变的环形thumb_round_progress_1.xml。?xml version1.0encodingutf-8?layer-list xmlns:androidhttp://schemas.android.com/apk/res/androiditemshape android:shapeovalsizeandroid:widthdimen/audio_seek_bar_thumb_sizeandroid:heightdimen/audio_seek_bar_thumb_size/solid android:color#ffffff//shape/itemitemshapeandroid:innerRadius4dpandroid:thicknessRatio6android:shaperingandroid:useLevelfalsegradientandroid:endColor#ffffffandroid:startColor#7095fcandroid:typesweep/sizeandroid:widthdimen/audio_seek_bar_thumb_sizeandroid:heightdimen/audio_seek_bar_thumb_size//shape/item/layer-list最后分享一份【腾讯技术团队出品】Android零基础入门到精通Android Studio安装教程全套安卓基础教程Android编程入门教程Java语言基础从入门到熟悉Kotlin语言基础从入门到熟悉Android 技术栈从入门到熟悉Android Jetpack 全家桶全面学习对于新手来说可能安装Android Studio存在一定困难你可以看着以下视频一步步的跟着学习安装运行Android Studio 安装教程有了Java阶段的学习这一阶段建议以视频学习为主辅以图书查漏补缺。如果以图书为主可以根据图书讲解敲代码辅以教学视频查漏补缺。遇到问题可以去百度入门的问题一般会有很多人遇到并且给出比较好的解答。需要掌握基本知识点比如四大组件如何使用、如何创建Service、如何进行布局、简单的自定义View、动画、网络通信等常见技术。全套零基础教程已经为你们准备好了需要的可以添加下方二维码免费领取全套安卓基础教程