音视频测试

使用 Hexo 插件插入音乐/视频

两个好用的hexo插件:

**hexo-tag-aplayer:https://github.com/grzhan/hexo-tag-aplayer

**hexo-tag-dplayer: https://github.com/NextMoe/hexo-tag-dplayer

播放音乐的aplayer

在cmd页面内,使用npm安装:
npm install hexo-tag-aplayer

在markdown内添加以下代码:

1
{% aplayer "她的睫毛" "周杰伦" "http://home.ustc.edu.cn/~mmmwhy/%d6%dc%bd%dc%c2%d7%20-%20%cb%fd%b5%c4%bd%de%c3%ab.mp3"  "http://home.ustc.edu.cn/~mmmwhy/jay.jpg" "autoplay=false" %}

播放视频的dplayer

在cmd页面内,使用npm安装:
npm install hexo-tag-dplayer

在markdown内添加以下代码:

1
{% dplayer "url=http://home.ustc.edu.cn/~mmmwhy/GEM.mp4"  "pic=http://home.ustc.edu.cn/~mmmwhy/GEM.jpg" "loop=yes" "theme=#FADFA3" "autoplay=false" "token=tokendemo" %}

安卓考试重点整理

登录界面实现

  • 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/uNameTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="用户名:"/>
<EditText
android:id="@+id/uNameEdt"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/uPWDTv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="密码:"/>
<EditText
android:id="@+id/uPWDEdt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<Button
android:id="@+id/uLoginBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登录"/>
</LinearLayout>
  • 知识点
    • LinearLayout(线性布局),使用 android:orientation 属性指定布局方向,vertical(垂直)、horizontal(水平)
    • fill_parent:设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。这跟Windows控件的dockstyle属性大体一致。设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。
    • wrap_content:设置一个视图的尺寸为wrap_content将强制性地使视图扩展以显示全部内容。以TextView和ImageView控件为例,设置为wrap_content将完整显示其内部的文本和图像。布局元素将根据内容更改大小。设置一个视图的尺寸为wrap_content大体等同于设置Windows控件的Autosize属性为True。
    • match_parent: Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。那么如果考虑低版本的使用情况你就需要用fill_parent了
    • android:inputType=”textPassword”:密码框需要加入的属性
  • 实现
    D8017116-34B8-4244-B4B6-A9B6F5F91B74

数组

  • 示例
1
2
3
4
5
6
7
8
9
<resources>
<string-array name="inType">
<item>工资</item>
<item>兼职</item>
<item>股票</item>
<item>基金</item>
<item>利息</item>
</string-array>
</resources>

保存在 res/values/strings.xml 的 XML 文件

  • 元素
1
2
3
4
5
6
7
8
9
10
11
12
<resources>
必备。此元素必须是根节点。
无属性。

<string-array>
定义一个字符串数组。包含一个或多个 <item> 元素。
属性:
name:String。数组的名称。该名称将用作资源 ID 来引用数组。

<item>
一个字符串,可包括样式设置标记。其值可以是对另一字符串资源的引用。 必须是 <string-array> 元素的子项。
无属性。

实例化

  • 示例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 //定义
TextView uNameTv,uPWDTv;
EditText uNameEdt,uPWDEdt;
Button uLoginBtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// TextView 实例化(一般不用)
uNameTV=(TextView)findViewById(R.id.uNameTV);
uPWDTV=(TextView)findViewById(R.id.uPWDTV);
//实例化 用户名输入框
uNameEdt= (EditText) findViewById(R.id.uNameEdt);
//实例化 密码输入框
uPWDEdt= (EditText) findViewById(R.id.uPWDEdt);
//实例化登录按钮
uLoginBtn = (Button) findViewById(R.id.uLoginBtn);
//设置登录按钮的监听事件
uLoginBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//提示信息
Toast.makeText(MainActivity.this,"登录操作",Toast.LENGTH_LONG).show();
}
});
}
  • 知识点
    • findViewById方法通过定义的id获取控件,需要进行强制转换才能使用。
    • 按钮可能需要进行监听操作。

SharedPreferences的使用

  • 写入示例
1
2
3
4
5
6
7
8
9
//1、打开SharedPreferences,名称为login,如果存在则打开它,否则创建新的
SharedPreferences sp =getSharedPreferences("login", MODE_PRIVATE);
//2、让sp处于编辑状态
Editor editor=sp.edit();
//3、存放数据(通过获取EditText控件的数据)
editor.putString("username", uNameEdt.getText().toString());
editor.putString("password", uPWDEdt.getText().toString());
//4、完成提交
editor.commit();
  • 读取示例
1
2
3
4
5
6
7
8
//1、获取SharedPreferences
SharedPreferences sp=getSharedPreferences("login",MODE_PRIVATE);
//2、取出数据
String uName=sp.getString("username", "默认值");
String uPWD=sp.getString("password", "000");
//设置TextView中的数据
uNameTv.setText("用戶名:"+uName);
uPWDTv.setText("密码:"+uPWD);

Intent 传值

  • 数据存放示例
1
2
3
4
5
6
7
8
9
10
11
12
13
//1.创建并实例化一个Intent对象
Intent intent=new Intent();
//2.创建并实例化一个Bundle对象
Bundle bundle=new Bundle();
//3.存放数据(通过获取EditText控件的数据)
bundle.putString("username", uNameEdt.getText().toString());
bundle.putString("password", uPWDEdt.getText().toString());
//4.将Bundle对象添加到Intent对象中
intent.putExtras(bundle);
//5.设置Intent需要打开的新Activity
intent.setClass(MainActivity.this, NewActivity.class);
//启动新的Activity
startActivity(intent);
  • 数据读取示例
1
2
3
4
5
6
7
8
9
10
//1. 获取Intent对象
Intent intent=getIntent();
//2.获取传递的数据包
Bundle bundle=intent.getExtras();
//3、取出数据
String uName=bundle.getString("username");
String uPWD=bundle.getString("password");
//4.设置TextView中的数据
uNameTv.setText("用戶名:"+uName);
uPWDTv.setText("密码:"+uPWD);

eclipse注释和注释模板

注释 
注释类型

1
2
// 单行注释
String type = "单行注释";

1
2
3
4
/* 
* 多行注释
*/
String type = "多行注释";
1
2
3
/**
* 文档注释
*/publicclass Dummy{}

快捷键

添加/取消单行注释: Ctrl+/

添加类的文档注释: Ctrl+Shift+j

注释模板                               

作用:定义文件、类和方法等默认的注释格式,减少手工输入的工作量。

设置注释模板的入口:点击 Window->Preference->Java->Code Style->Code Template ,然后展开 Comments节点 。

Comments节点 下的元素介绍:

  1. File节点(文件注释标签)
1
2
3
4
5
6
7
8
/**   
* @Title: ${file_name}
* @Package ${package_name}
* @Description: ${todo}(用一句话描述该文件做什么)
* @author fsjohnhuang
* @date ${date} ${time}
* @version V1.0
*/
  1. Types节点(类注释标签)
1
2
3
4
5
6
7
8
/** 
* @ClassName: ${type_name}
* @Description: ${todo}(这里用一句话描述这个类的作用)
* @author fsjohnhuang
* @date ${date} ${time}
*
* ${tags}
*/
  1. Fields节点(字段注释标签)
1
2
3
/** 
* @Fields ${field} : ${todo}(用一句话描述这个变量表示什么)
*/
  1. Constructor节点(构造函数注释标签)
1
2
3
4
5
/** 
* <p>Title: </p>
* <p>Description: </p>
* ${tags}
*/
  1. Method节点(方法注释标签)
1
2
3
4
5
6
7
/** 
* @Title: ${enclosing_method}
* @Description: ${todo}(这里用一句话描述这个方法的作用)
* @param ${tags} 参数说明
* @return ${return_type} 返回类型
* @throws
*/
  1. Overriding Methods节点(覆盖方法注释标签)
1
2
3
4
5
6
/*
* Title: ${enclosing_method}
*Description:
* ${tags}
* ${see_to_overridden}
*/
  1. Delegate Methods节点(代理方法注释标签)
1
2
3
4
/** 
* ${tags}
* ${see_to_target}
*/
  1. getter节点(getter方法注释标签)
1
2
3
/** 
* @return ${bare_field_name}
*/
  1. setter节点(setter方法注释标签)
1
2
3
/** 
* @param ${param} 要设置的 ${bare_field_name}
*/

导入、导出注释模板

在 Window->Preference->Java->Code Style->Code Template 下可导入导出注释模板。