文章目录
- 目标
- 一、资源的管理与使用
- 1.1 图片资源
- 1.2 主题和样式资源
- 1.3 布局资源
- 1.4 字符串资源
- 1.5 颜色资源
- 定义颜色值
- 1.6 尺寸资源
- Android支持的尺寸单位
- 二、程序调试
- 2.1 单元测试
- 2.2 注意
- 2.3 Logcat的使用
目标
- 掌握资源的管理与使用方式,能够灵活使用程序中的资源
- 掌握单元测试与Logcat的使用,能够完成对程序的调试
一、资源的管理与使用
<!-- 调用styles.xml文件中定义的主题 -->
android:theme ="@style/AppTheme"
<!-- 引用res/values/styles.xml文件中的主题和样式资源 -->
style="@style/textViewStyle"
<!--调用res/values/strings.xml文件中的字符串资源-->
@string/app_name
<!--调用res/values/colors.xml文件中的颜色资源-->
@color/colorPrimary
<!--调用res/values/dimens.xml文件中的尺寸资源-->
@dimen/activity_horizontal_margin
1.1 图片资源
调用图片资源的方式有两种,具体如下:
(1)通过Java代码调用图片资源
//调用mipmap文件夹中资源文件
getResources().getDrawable(R.mipmap.ic_launcher);
//调用以drawable开头的文件夹中的资源文件
getResources().getDrawable(R.drawable.icon);
(2) 在XML布局文件中调用图片资源
@mipmap/ic_launcher //调用mipmap文件夹中的资源文件
@drawable/icon //调用以drawable开头的文件夹中的资源文件
1.2 主题和样式资源
主题
:包含一种或多种格式化属性的集合,在程序中调用主题资源可改变窗体的样式。
主题资源定义位置
:在res/values/styles.xml文件中
定义主题资源的标签:
<style></style>:定义主题的标签
<item></item>:设置主题样式的标签
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
想要调用styles.xml文件中定义的主题
,可以在AndroidManifest.xml文件中设置,也可以在代码中设置。
(1)在AndroidManifest.xml文件中设置主题
android:theme ="@style/AppTheme"
(2)在Java代码中设置主题
setTheme(R.style.AppTheme);
样式
:设置View的宽度、高度和背景颜色等信息。
样式资源定义位置
:res/values目录下的styles.xml
文件中
样式的标签:
<style></style>:定义样式的标签
<item></item>:设置控件样式的标签
在XML布局文件中引用样式
style="@style/textViewSytle"
1.3 布局资源
布局资源
:通常用于搭建程序中的各个界面。
存放位置
:res/layout文件夹中
调用布局资源的方式有2种:
(1)通过Java代码调用布局资源文件
//在Activity的onCreate()方法中调用activity_main.xml布局文件
setContentView(R.layout.activity_main);
(2)在XML布局文件中调用布局资源文件
//在XML布局文件中调用activity_main.xml布局文件
<include layout="@layout/activity_main"/>
1.4 字符串资源
字符串
:用于显示界面上的文本信息。
定义位置
:res/values/strings.xml文件中
字符串标签:
<string></string>:定义字符串的标签
<resources>
<string name="app_name">字符串</string>
</resources>
调用字符串资源的方式有2种:
(1)通过Java代码调用字符串资源
getResources().getString(R.string.app_name);
(2)在XML布局文件中调用字符串资源
@string/app_name
1.5 颜色资源
颜色
:用于显示控件的不同色彩效果。
定义位置
:res/values/colors.xml文件中
颜色标签:
<color></color>:定义颜色的标签
<resources>
<color name="colorPrimary">#3F51B5</color>
</resources>
调用颜色资源的方式有2种:
(1)通过Java代码调用颜色资源
getResources().getColor(R.color.colorPrimary);
(2)在XML布局文件中调用颜色资源
@color/colorPrimary
定义颜色值
在Android中,颜色值是由RGB(红、绿、蓝)三原色和一个透明度(Alpha)表示,颜色值必须以“#”开头,“#”后面显示Alpha-Red-Green-Blue形式的内容。其中,Alpha值可以省略,如果省略,表示颜色默认是完全不透明的。
一般情况下,使用以下4种形式定义颜色
1.6 尺寸资源
尺寸:用于设置View的宽高和View之间的间距值。
尺寸资源定义位置:res/values/dimens.xml文件中,如果程序中没有dimens.xml文件,可自行创建。
尺寸的标签:
<dimen></dimen>:定义尺寸的标签
<resources>
<dimen name="activity_horizontal_margin">16dp</dimen>
</resources>
调用尺寸资源的方式有2种:
(1)通过Java代码调用尺寸资源
getResources().getDimension(R.dimen.activity_horizontal_margin);
(2)在XML布局文件中调用尺寸资源
@dimen/activity_horizontal_margin
Android支持的尺寸单位
尺寸单位:
px(pixels,像素):每个px对应屏幕上的一个点。
dp(Density-independent Pixels,设备独立像素):是一种与屏幕密度无关的尺寸单位。
sp(scaled pixels,比例像素):主要处理字体的大小,可以根据用户字体大小首选项进行缩放。
in(inches,英寸):标准长度单位。
pt(points,磅):屏幕物理长度单位,1磅为1/72英寸。
mm(Millimeters,毫米):屏幕物理长度单位。
二、程序调试
2.1 单元测试
单元测试是指在Android程序开发过程中对最小的功能模块进行测试,单元测试包括Android单元测试和Junit单元测试。
Android单元测试
:
- 该测试方式执行测试的时候需要连接Android设备。
- 速度比较慢。
- 适合需要调用Android API的单元测试。
Junit单元测试
:
- 该测试方式不需要依赖Android设备,在本地即可运行。
- 速度快。
- 适合只对Java代码功能进行的单元测试。
Android Studio 3.2版本在创建项目时,会默认在app/src/androidTest
和app/src/test
文件夹中创建Android单元测试类ExampleInstrumentedTest和Junit单元测试类ExampleUnitTest。
(1) Android单元测试类ExampleInstrumentedTest
- 使用@RunWith(AndroidJUnit4.class)注解ExampleInstrumentedTest类
- @Test注解类中的方法
package cn.itcast.helloworld;
@RunWith(AndroidJUnit4.class) //注解类
public class ExampleInstrumentedTest {
@Test //注解方法
public void useAppContext() {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
//断言,期望两个参数值相等
assertEquals("cn.itcast.helloworld", appContext.getPackageName());
}
}
(2)Junit单元测试类ExampleUnitTest
- @Test注解类中的方法
package cn.itcast.helloworld;
public class ExampleUnitTest {
@Test //注解方法
public void addition_isCorrect() {
//断言,期望两个参数值相等
assertEquals(4, 2 + 2);
}
}
2.2 注意
Android Studio 3.2
版本在创建项目时,会自动在build.gradle文件中添加单元测试的支持库
,如果在进行单元测试时,程序中的build.gradle文件中没有添加单元测试的支持库,则需要手动进行添加。
dependencies {
......
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
}
2.3 Logcat的使用
LogCat是Android中的命令行工具,用于获取程序从启动到关闭的日志信息。
Log类所输出的日志内容分为六个级别。
级别 | Log类中的静态方法 |
Verbose | Log.v() |
Debug | Log.d() |
Info | Log.i() |
Warning | Log.w() |
Error | Log.e() |
Assert | Log.wtf() |
Log.v("MainActivity", "Verbose"); //MainActivity打印信息的标签 Verbose需要打印的信息
Log.d("MainActivity","Degug");
Log.i("MainActivity","Info");
Log.w("MainActivity", "Warning");
Log.e("MainActivity", "Error");
Log.wtf("MainActivity","Assert");
LogCat区域中日志信息根据级别不同显示不同的颜色
级别 | 显示信息 | 日志信息颜色 |
verbose(V) | 全部信息 | 黑色 |
debug(D) | 调试信息 | 蓝色 |
info(I) | 一般信息 | 绿色 |
warning(W) | 警告信息 | 橙色 |
error(E) | 错误信息 | 红色 |
assert | 断言失败后的错误消息 | 红色 |