Android项目app->src->main->res目录的结构
drawable和mipmap-?dpi(l,m,h,xh,xxh,xxxh)
drawable(可画的)和mipmap-?dpi都是可绘制的资源,定义了Android应用中需要的“不同分辨率”下的资源文件,在市场上销售的Android手机在分辨率上可谓是千差万别,从640×480到1280×960等等,差异非常大。
如果我们在1280×960的高分辨率下使用了640×480的低分辨率的资源就会看起来非常的丑陋,效果非常差。所以在不同的分辨率下,Android系统会根据分辨率选择响应的资源文件。
接来下说一下常见的(l,m,h,xh,xxh,xxxh)这六个种类的资源,ldpi(low),mdpi (medium),hdpi(high)xhdpi(extra high)。通常根据这六中不同的类型来区分资源文件。
l,m,h,xh,xxh,xxxh都是有相应的分辨率区间的,只有落在这个区间里面,才会调用相应类型的资源文件。
名称 | 像素密度范围 | 图片大小 |
---|---|---|
mdpi | 120dp~160dp | 48*48px |
xdpi | 160dp~240dp | 72*72px |
xhdpi | 240dp~320dp | 96*96px |
xxhdpi | 320dp~480dp | 144*144px |
xxxhdpi | 460dp~640dp | 192*192px |
更多的信息可看:
Android-屏幕适配全攻略(一)
我们通常将app需要的icon放在mipmap目录下,将其他图片资源放在drawable目录下
ps:
现在我们在AndroidStudio里创建项目时,通常只会帮我们创建一个drawable文件夹,那我们如果想将不同分辨率的图片像放进不同类别的mipmap一样放进不同类别的drawable的话。
这时候可以自己创建不同的drawable文件:
解决android studio drawable新建项目时只有一个drawable目录的问题
values
Android应用界面上需要显示各类文本标签文字信息(strings,styles,colors)
strings是标签信息,styles、colors主要是一些外观、颜色上的信息。
String文件的例子:
<resources>
<string name="app_name">AppName</string>
<string name="title_activity_login">Sign in</string>
</resources>
styles文件的例子:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<!--标题栏的颜色-->
<item name="colorPrimary">@color/black</item>
<!--状态栏的颜色-->
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<!--默认的光标、选中的RadioButton颜色-->
<item name="colorAccent">@color/colorAccent</item>
<!-- 避免控件会顶到状态栏上 -->
<item name="android:fitsSystemWindows">true</item>
<!--字体设置为sans-->
<item name="android:typeface">sans</item>
</style>
</resources>
Style文件的学习:
Android的Style的使用
Android的Style和Theme
colors文件的例子:
<resources>
<color name="white">#FFFFFF</color><!--白色 -->
<color name="ivory">#FFFFF0</color><!--象牙色 -->
<color name="lightyellow">#FFFFE0</color><!--亮黄色 -->
<color name="yellow">#FFFF00</color><!--黄色 -->
<color name="snow">#FFFAFA</color><!--雪白色 -->
</resources>
layout
Android下定义的界面布局文件。
在Android的系统里,我们在开发Android应用的过程中,我们要实现一个界面元素的时候,比如说按钮、滚动条、输入框等这些元素是放在具体的xml的界面布局文件里面的。
我们界面元素的属性和相互关系也是放在xml文件里的。界面元素的属性如宽度(width)、高度(height)、id等,相互关系如RelativeLayout(相对布局)里的两个控件之间的位置关系,控件与父布局之间的位置关系等等
Menu
存放系统菜单项和上下文菜单项
Menu学习:
Android Menu用法全面讲解
Android中Menu的基本用法
菜单(menu)文件:
用来定义菜单项,里面的属性主要有icon、showAsAction、title等。下面给与一个简单的menu文件的例子。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_scan"
android:title="扫一扫"
android:orderInCategory="100"
android:icon="@mipmap/ic_launcher"
app:showAsAction="never"/>
<item android:id="@+id/action_creat_team"
android:title="创建小组"
android:orderInCategory="100"
android:icon="@mipmap/ic_launcher"
app:showAsAction="never"/>
<item android:id="@+id/action_apply_history"
android:title="申请历史"
android:orderInCategory="100"
android:icon="@mipmap/ic_launcher"
app:showAsAction="never"/>
</menu>
-
title是菜单项的文字
-
icon是菜单显示的图标
-
showAsAction 该菜单项是否显示
主要有三个值:always、ifRoom、never。always是“总是显示”,ifRoom是“如果有空间则显示,如果没有就隐藏”,never是“总是隐藏” -
orderInCategory是菜单项的优先级
每个item的优先级,值越大优先级越低,actionbar地方不够就会放到overflow中