搜档网
当前位置:搜档网 › DbUtils入门实例

DbUtils入门实例

DbUtils入门实例
DbUtils入门实例

Dbutis

编辑 | 删除 | 权限设置 | 更多▼

更多▲

?设置置顶

?推荐日志

?转为私密日志

我不怕发表于2010年06月01日 13:33 阅读(0) 评论(0) 分类:个人日

记权限: 仅自己可见

1.package cn.lining.test;

2.

3.import java.sql.Connection;

4.import java.sql.DriverManager;

5.import java.sql.SQLException;

6.import java.util.List;

7.import java.util.Map;

8.

9.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.DbUtils;

10.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.QueryRunner;

11.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.ArrayHandler;

12.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.ArrayListHandler;

13.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.BeanHandler;

14.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.BeanListHandler;

15.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.ColumnListHandler;

16.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.KeyedHandler;

17.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.MapHandler;

18.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.MapListHandler;

19.import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.ScalarHandler;

20.

21.public class test {

22. @SuppressWarnings("unchecked")

23. public static void main(String[] args) throws ClassNotFoundException {

24.

25. UserField userField = new UserField();

26.

27. Connection conn = null;

28. String jdbcURL = "jdbc:mysql://localhost:3306/macaw4";

29. String jdbcDriver = "com.mysql.jdbc.Driver";

30. try {

31. DbUtils.loadDriver(jdbcDriver);

32. conn = DriverManager.getConnection(jdbcURL, "root", "root");

33. conn.setAutoCommit(false);//关闭自动提交

34. QueryRunner qRunner = new QueryRunner();

35.

36. // 以下部分代码采用MapHandler存储方式查询

37. System.out.println("***Using MapHandler***");

38. Map map = (Map) qRunner.query(conn,

39. "select * from mc_user_field where id = ?",

40. new MapHandler(), new Object[] { "5" });

41.

42. System.out.println("id ------------- name ");

43. System.out.println(map.get("id") + " ------------- "

44. + map.get("name"));

45.

46. // 以下部分代码采用MapListHandler存储方式查询

47. System.out.println("***Using MapListHandler***");

48. List lMap = (List) qRunner.query(conn,

49. "select * from mc_user_field", new MapListHandler());

50.

51. System.out.println("id ------------- name ");

52. for (int i = 0; i < lMap.size(); i++) {

53. Map vals = (Map) lMap.get(i);

54. System.out.println(vals.get("id") + " ------------- "

55. + vals.get("name"));

56. }

57.

58. // 以下部分代码采用BeanHandler存储方式查询

59. System.out.println("***Using BeanHandler***");

60. userField = (UserField) qRunner.query(conn,

61. "select * from mc_user_field where id = ?",

62. new BeanHandler(Class.forName("https://www.sodocs.net/doc/a013711144.html,erField")),

63. new Object[] { "5" });

64. System.out.println("id ------------- name ");

65. System.out.println(userField.getId() + " ------------- "

66. + userField.getName());

67.

68. // 以下部分代码采用BeanListHandler存储方式查询

69. System.out.println("***Using BeanListHandler***");

70. List lBean = (List) qRunner.query(conn,

71. "select * from mc_user_field", new BeanListHandler(Class

72. .forName("https://www.sodocs.net/doc/a013711144.html,erField")));

73. System.out.println("id ------------- name ");

74. for (int i = 0; i < lBean.size(); i++) {

75. userField = (UserField) lBean.get(i);

76. System.out.println(userField.getId() + " ------------- "

77. + userField.getName());

78. }

79.

80. // 以下部分代码采用ArrayHandler存储方式查询

81. System.out.println("***Using ArrayHandler***");

82. Object[] array = (Object[]) qRunner.query(conn,

83. "select * from mc_user_field where id = ?",

84. new ArrayHandler(), new Object[] { "5" });

85.

86. System.out.println("id ------------- name ");

87. System.out.println(array[0].toString() + " ------------- "

88. + array[1].toString());

89.

90. // 以下部分代码采用ArrayListHandler存储方式查询

91. System.out.println("***Using ArrayListHandler***");

92. List lArray = (List) qRunner.query(conn,

93. "select * from mc_user_field", new ArrayListHandler());

94. System.out.println("id ------------- name ");

95. for (int i = 0; i < lArray.size(); i++) {

96. Object[] var = (Object[]) lArray.get(i);

97. System.out.println(var[0].toString() + " ------------- "

98. + var[1].toString());

99. }

100.

101.// 以下部分代码采用ColumnListHandler存储方式查询指定列102. System.out.println("***Using ColumnListHandler***"); 103. List lName = (List) qRunner.query(conn,

104."select * from mc_user_field where id = ?",

105.new ColumnListHandler("name"), new Object[] { "5" }); 106. System.out.println("name ");

107.for (int i = 0; i < lName.size(); i++) {

108. String name = (String) lName.get(i);

109. System.out.println(name);

110. }

111.

112.// 以下部分代码采用ScalarHandler存储方式查询

113. System.out.println("***Using ScalarHandler***");

114. String name = (String) qRunner.query(conn, 115."select * from mc_user_field where id = ?",

116.new ScalarHandler("name"), new Object[] { "5" }); 117.

118. System.out.println("name ");

119. System.out.println(name);

120.

121.// 以下部分代码采用KeyedHandler存储方式查询

122. System.out.println("***Using KeyedHandler***");

123. Map map2 = (Map) qRunner.query(conn, 124."select * from mc_user_field", new KeyedHandler("name")); 125.

126. System.out.println("name: field_name2");

127. Map vals = (Map) map2.get("field_name2");

128. System.out.println(vals.get("id") + " " + vals.get("name") + " " 129. + vals.get("type"));

130.

131.// 以下部分代码插入一条数据

132. System.out.println("***Insert begin***");

133. userField = new UserField();

134. qRunner.update(conn, "insert into mc_user_field ("

135. + "id,name,type,sort_order,required,visible)"

136. + "values (?,?,?,?,?,?)", new Object[] { userField.getId(), 137. userField.getName(), userField.getType(),

138. userField.getSort_order(), userField.getRequired(),

139. userField.getVisible() });

140. System.out.println("***update end***");

141.

142.// 以下部分代码更新一条数据

143. System.out.println("***update begin***");

144. userField = new UserField();

145. qRunner.update(conn, "update mc_user_field set "

146. + "name = ?,type = ?,sort_order = ?,"

147. + "required = ?,visible = ?" + "where id = ?",

148.new Object[] { userField.getName(), userField.getType(), 149. userField.getSort_order(), userField.getRequired(),

150. userField.getVisible(), userField.getId() });

151. System.out.println("***update end***");

152.

153.// 以下部分代码删除一条数据

154. System.out.println("***delete begin***");

155. userField = new UserField();

156. qRunner.update(conn, "delete from mc_user_field where id2 = ?", 157.new Object[] { userField.getId() });

158. System.out.println("***delete end***");

159.

160. } catch (SQLException ex) {

161. ex.printStackTrace();

162.try {

163. System.out.println("***rollback begin***");

164. DbUtils.rollback(conn);

165. System.out.println("***rollback end***");

166. } catch (SQLException e) {

167. e.printStackTrace();

168. }

169. } finally {

170. DbUtils.closeQuietly(conn);

171. }

172.

173. }

174.}

? ArrayHandler:把结果集中的第一行数据转成对象数组。

? ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中。? BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中。

? BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里。

? ColumnListHandler:将结果集中某一列的数据存放到List中。

? KeyedHandler:将结果集中的每一行数据都封装到一个Map里,然后再根据指定的key把每个Map再存放到一个Map里。

? MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值。

? MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List。? ScalarHandler:将结果集中某一条记录的其中某一列的数据存成Object。

1package com.sidi.util;

2

3import java.sql.Connection;

4import java.sql.DriverManager;

5import java.sql.SQLException;

6import java.util.List;

7

8import https://www.sodocs.net/doc/a013711144.html,mons.dbcp.ConnectionFactory;

9import https://www.sodocs.net/doc/a013711144.html,mons.dbcp.DriverManagerConnectionFactory;

10import https://www.sodocs.net/doc/a013711144.html,mons.dbcp.PoolableConnectionFactory;

11import https://www.sodocs.net/doc/a013711144.html,mons.dbcp.PoolingDriver;

12import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.DbUtils;

13import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.QueryRunner;

14import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.BeanHandler;

15import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.BeanListHandler;

16import https://www.sodocs.net/doc/a013711144.html,mons.dbutils.handlers.MapListHandler;

17import https://www.sodocs.net/doc/a013711144.html,mons.pool.ObjectPool;

18import https://www.sodocs.net/doc/a013711144.html,mons.pool.impl.GenericObjectPool;

19

20public class MyDbutil {

21private String dri = "com.mysql.jdbc.Driver";

22private String url = "jdbc:mysql://localhost:3306/myout?autoReconnect=true&useUnicode=true&cha racterEncoding=UTF-8";

23private String username = "root";

24private String password = "";

25private volatile static MyDbutil faction = null;

26private static ObjectPool connectionPool = null;

27

28private MyDbutil() {

29

30}

31//打开

32

33public static MyDbutil Open() {

34while (faction == null) {

35synchronized(MyDbutil.class){

36if (faction == null) {

37faction = new MyDbutil();

38}

39}

40}

41return faction;

42}

43//关闭连接

44

45public void Close(Connection conn) {

46DbUtils.closeQuietly(conn);

47//ShutdownPool();

48}

49/**

50* 连接池启动

51* @throws Exception

52*/

53public void StartPool() {

54try {

55Class.forName(dri);

56} catch (ClassNotFoundException e1) {

57// TODO Auto-generated catch block

58e1.printStackTrace();

59}

60if (connectionPool != null) {

61ShutdownPool();

62}

63try {

64connectionPool = new GenericObjectPool(null);

65ConnectionFactory connectionFactory = new DriverManagerConnectionFactory(url,username,password);

66PoolableConnectionFactory poolableConnectionFactory = new PoolableConnectionFactory(connectionFactory, connectionPool, null, "SELECT 1 as a", false, true);

67Class.forName("https://www.sodocs.net/doc/a013711144.html,mons.dbcp.PoolingDriver");

68PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");

69driver.registerPool("dbpool2", connectionPool);

70System.out.println("装配连接池OK");

71} catch (Exception e) {

72 e.printStackTrace();

73}

74}

75/**

76* 释放连接池

77*/

78public static void ShutdownPool() {

79try {

80PoolingDriver driver = (PoolingDriver) DriverManager.getDriver("jdbc:apache:commons:dbcp:");

81driver.closePool("dbpool2");

82} catch (SQLException e) {

83 e.printStackTrace();

84}

85}

86

87// 获得数据库连接

88

89public synchronized Connection getConnection() {

90Connection conn = null;

91try {

92if(connectionPool == null)

93StartPool();

94conn = DriverManager.getConnection("jdbc:apache:commons:dbcp:dbpool2");

95} catch (Exception e) {

96 e.printStackTrace();

97}

98return conn;

99}

100//执行查询方法(使用map)

101

102public List query(String sql) {

103List results = null;

104Connection conn = null;

105try {

106conn = getConnection();

107QueryRunner qr = new QueryRunner();

108results = (List) qr.query(conn, sql, new MapListHandler());

109} catch (SQLException e) {

110 e.printStackTrace();

111} finally {

112Close(conn);

113}

114return results;

115}

116//执行查询方法(使用map)

117

118public List query(String sql, Object param) {

119List results = null;

120Connection conn = null;

121try {

122conn = getConnection();

123QueryRunner qr = new QueryRunner();

124results = (List) qr.query(conn, sql, param, new MapListHandler()); 125} catch (SQLException e) {

126 e.printStackTrace();

127} finally {

128Close(conn);

129}

130return results;

131}

132//执行查询方法(使用)

133

134public List query(String sql, Class module) {

135List results = null;

136Connection conn = null;

137try {

138conn = getConnection();

139QueryRunner qr = new QueryRunner();

140results = (List) qr.query(conn, sql, new BeanListHandler(module)); 141} catch (SQLException e) {

142 e.printStackTrace();

143} finally {

144Close(conn);

145}

146return results;

147}

148//查询单个数据

149

150public Object get_one(String sql, Class module) {

151Object results = null;

152Connection conn = null;

153try {

154conn = getConnection();

155QueryRunner qr = new QueryRunner();

156results = (Object) qr.query(conn, sql, new BeanHandler(module)); 157} catch (SQLException e) {

158 e.printStackTrace();

159} finally {

160Close(conn);

161}

162return results;

163}

164//增删改方法

165public int execute(String sql) throws Exception {

166Connection conn = getConnection();

167int rows = 0;

168try {

169QueryRunner qr = new QueryRunner();

170rows = qr.update(conn, sql);

171} finally {

172Close(conn);

173}

174return rows;

175}

176//增删改方法

177public int execute(String sql, Object[] params) throws Exception {

178Connection conn = getConnection();

179int rows = 0;

180try {

181QueryRunner qr = new QueryRunner();

182rows = qr.update(conn, sql, params);

183} finally {

184Close(conn);

185}

186return rows; 187}

188}

photoshop基础教程(新手入门)(免费)

Photosop的基础知识 一、Photosop是ADOBE公司推出的图形图像处理软件,功能强大,广泛应用于印刷、广告设计、封面制作、网页图像制作、照片编辑等领域。利用Photosop可以对图像进行各种平面处理。绘制简单的几何图形、给黑白图像上色、进行图像格式和颜色模式的转换。 二、Photosop7.0的启动与退出 1、启动Photoshop的方法: 单击开始/程序/Photoshop7.0即可启动.或者打开一个Photoshop文件也能够启动Photoshop. 2、退出Photoshop的方法: 单击关闭按钮或按下CTRL+Q组合键或ALT+F4组合键,都可以退出Photoshop。 三、Photoshop的窗口组成(标题栏、菜单栏、工具栏、工具箱、图像图口、控制面板、状态栏、Photoshop 桌面) 1、标题栏:位于窗口最顶端。 2、菜单栏:其中包括9个菜单。位于标题栏下方。 3、工具栏:位于菜单栏下方。可以随着工具的改变而改变。 4、工具箱:位于工具栏的左下方。 5、图像窗口:位于工具栏的正下方。用来显示图像的区域,用于编辑和修改图像。 6、控制面版:窗口右侧的小窗口称为控制面版。用于改变图象的属性。 7、状态栏:位于窗口底部,提供一些当前操作的帮助信息。 8、Photoshop桌面:Photoshop窗口的灰色区域为桌面。其中包括显示工具箱、控制面板和图像窗口。 四、图像窗口:图像窗口由(标题栏、图像显示区、控制窗口图标) 1、标题栏:显示图像文件名、文件格式、显示比例大小、层名称以及颜色模式。 2、图像显示区:用于编辑图像和显示图像。 3、控制窗口图标:双击此图标可以关闭图像窗口。单击此图标,可以打开一个菜单,选择其中的命令即可。 五、工具箱和工具栏

例 10-6 CMPS应用实例

例10-6 CMPS应用实例 源程序EX10-6.asm如下: DATA SEGMENT SOURCE DB 'I REALLY LOVE NANKAI!' ;源串 COUNT_SOURCE EQU $-SOURCE KEY DB 'LOVE NANKAI' ;要找的短语 COUNT_KEY EQU $-KEY STR_FOUND DB 'FOUND',13,10,'$' ;找到提示信息 STR_NOTFOUND DB 'NOT FOUND',13,10,'$' ;未找到提示信息 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX LEA SI,SOURCE ;DS:SI指向源串 PUSH SI ;保护SI指向源串头 NEXT: LEA DI,KEY ;ES:DI指向要找的目标 MOV CX,COUNT_KEY ;目标短语长度 CLD ;置DF=0,正向比较 REPE CMPSB ;目标串与源串逐个比较搜索 JZ FOUND ;发现含目标串转移到FOUND MOV BL,'!' ;没发现,查看是否到末尾 CMP BL,[SI] JZ NO ;已经到尾标志‘!’转未发现处理 POP SI ;当前位置未发现但没有到尾,将源串指针弹出INC SI ;修改指针,指向源串下一字符位置 PUSH SI ;保护当前位置 JMP NEXT ;转NEXT继续从当前位置搜索 NO: LEA DX,STR_NOTFOUND MOV AH,9 INT 21H JMP EXIT FOUND: LEA DX,STR_FOUND MOV AH,9 INT 21H ;输出发现提示 POP SI MOV DX,SI ;以下以十六进制输出搜索串在源串的起始位置 MOV BL,DL SHR DL,1 SHR DL,1 SHR DL,1 SHR DL,1

一看就懂的Android APP开发入门教程

工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择U SE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Andro id的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

ps工具使用入门教程

PS工具使用入门教程 想要用好Photoshop,首先要了解Photoshop中最常用到的工具箱。Photoshop的工具箱就像是一个百宝箱,它里面提供了几乎所有能够辅助我们进行各种操作的有用的工具。 图1-1- 2 1、轻松学会基本工具的使用 工具箱中的工具大致可以分为:选择工具、绘图工具、路径工具、文字工具、切片工具以及其它类的工具,此外还有一些提供独立控制功能的按钮和选项。由于不同的工具使用起来的基本方法和原理都差不多,这里举一个简单的例子让大家对工具箱的使用有一个大致的了解,在这个例子中我们将使用“选择工具”和“绘图工具”来制作一个立体球,一起来看看怎么做的吧! 步骤1 新建一个图像文件 首先我们创建一个新的图像文件。执行【文件】|【新建】命令打开【新建图像】文件对话框,在“名称”中填入图像的“名称”为“立体球”;将“宽度”和“高度”都设置为400;分别在右边的下拉框中选择单位为“像素”;在“模式”中选择图像的色彩“模式”为我们通常使用的“RGB 颜色”模式(如图1-1-4所示)。其它为默认设置,单击【好】按钮,这样一个新的图像文件就建好了。

图1-1- 4 图1-1- 5 步骤2 建立一个圆形选区 接着来制作一个圆形选区。选区的制作是Photoshop中常用到的操作,通过设定选区我们可以指定对图像处理的范围。如本例将要制作一个实心的圆形,那么先用选区来指定这个圆形的范围,下面我们就来看看怎样使用【椭圆选框工具】来制作一个正圆选区。首先要选中【椭圆选框工具】,在一般情况下,我们可以通过用鼠标点击工具箱中相应的工具图标来选中我们需要的工具,可是在Photoshop中有些工具在默认状态下是隐藏起来的,比如椭圆选框工具。我们可以在相应的工具图标上按住鼠标左键并停留一会直到弹出一个选择列表(如图1-1-6所示),这时将鼠标移动到列表中相应的工具图标上点击,我们就可以选择那些被隐藏起来的工具了,效果如图1-1-7所示。 图1-1- 6 图1-1- 7

Android Studio教程从入门到精通.doc

Android Studio教程从入门到精通 AS简介 经过2年时间的研发,Google终于正式发布了面向Android开发者的集成开发环境Android Studio 1.2(稳定版)。Android Studio是Google 开发的一款面向Android开发者的IDE,支持Windows、Mac、Linux 等操作系统,基于流行的Java语言集成开发环境IntelliJ搭建而成。该IDE在2013年5月的Google I/O开发者大会上首次露面,当时的测试版各种莫名其妙的Bug,但是14年12月8日发布的版本是稳定版。Android Studio 1.0推出后,Google官方将逐步放弃对原来主要的Eclipse ADT的支持,并为Eclipse用户提供了工程迁移的解决办法。不过相信作为Developer的你上手AS 1.0以后你再也不愿意使用原来苦逼的Eclipse+ADT了,你会被AS的各种强大所吸引。 下载安装 下载AS前先说下,AS安装包分为含SDK版本和不含SDK版本下载,如果你有SDK,那么完全可以下载不含SDK版本;不过下载了含SDK版本也没事,安装时选择自定义SDK也可以,安装后重新指定SDK路径也可以,总之看个人爱好喽。先吐槽下天朝的强大吧,不得不拜服天朝的墙。如果你有梯子请去Android Developer下载最新版的AS安装包,如果你没有梯子那也有个办法,就是去Android Studio中文社区官网下载你的平台需要的安装包。 下载下来以后安装的过程可以忽略了吧,能安装的都是程序猿吧,所以安装这点就不说了,注意已经正确安装配置了JDK。

PSCAD简单入门教程

PSCAD 使用说明 1.PSCAD安装 PSCAD / EMTDC常见4.0.2 ctacked版本或版本,这个版本PSCAD被封装成一个ISO文档,如图1-1,可用虚拟光驱或winrar打开。下面使用winrar将其解包。 图1-1PSCAD封包形式 在系统安装了以上版本后,可以直接双击这个iso文档,然后点击“解压到”图标,如图1-2,就可以对其进行解包。 如图1-2 使用winrar解PSCAD的封包 解压后可以得到三个文件夹,如下图1-3所示: 图1-3 PSCAD须按以下步骤安装,否则,装好后可能不运行。另外,操作系统最好

使用WinXP专业版,曾在WinXP Home版本上出现过不明原因的PSCAD不能运行情况。 安装步骤: (1)首先,运行PSCAD 目录下的,一路按OK或者NEXT在选择安装列表时选中“PSCAD(all Editions)”,如图1-4,不要选择License Manager和Real Time Playback (它需要硬件采集设备支持,否则只是评估版)这两项。使用附带的EGCS/GNU Fortran77编译器就选中“GNU Fortran Compiler”,如果要使用之前自行安装的Fortran90编译器就不要选这一项。 图1-4 2、当License Manger选择对话框出现时,如图1-5,选择“I will only be using Single-user/single-machine licenses.”或“professal”这一项,随后一路OK即可。 注意:选the Student Edition 版本,模型只允许15个结点。

Photoshop基础入门教程

Photoshop入门教程 第一课: 这是一个PS高手的体会,希望能对大家有所启迪。 1.不要看到别人的作品第一句话就说:给个教程吧!你应该想这个是怎么做出来的。当你自己想出来,再对照别人的教程的时候,你就知道自己和别人的思路的差异 2.初学者请不要看太多太多的书那会误人子弟的,先找本系统的学,很多人用了很久PS,都是只对部分功能熟悉而已,不系统还是不够的 3.看help,不要因为他们很难而我们自己是初学者所以就不看;帮助永远是最好的参考手册,虽然帮助的文字有时候很难看懂,总觉得不够直观 4.不要被蒙版,通道等词汇所迷惑;通道就是选区,呵呵 5.不要放过任何一个看上去很简单的小问题——他们往往并不那么简单,或者可以引伸出很多知识点;不会举一反三你就永远不等于会了PS 6.会用PS处理相片,并不说明你会设计; 7.学PS并不难,AI,CD等等也不过如此——难的是长期坚持实践和不遗余力的博览群书; 8.看再多PS的书,是学不全PS的,要多实践

浮躁的人容易问:我到底该学什么;——别问,学就对了; 浮躁的人容易问:PS有钱途吗;——建议你去抢银行; 浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 浮躁的人分两种:a)只观望而不学的人;只学而不坚持的人; 9.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 10.学习PS最好的方法之一就是多练习; 11.在任何时刻都不要认为自己手中的书已经足够了; 12.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 13.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 14.请把书上的例子亲手到电脑上实践,即使配套光盘中有源文件; 15.把在书中看到的有意义的例子扩充;并将其切实的运用到自己的工作中; 16.不要漏掉书中任何一个练习——请全部做完并记录下思路; 17.当你用PS到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和工作; 18.别心急,用PS确实不容易;水平是在不断的实践中完善和发展的;

Android开发入门教程

第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/t ools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。 通过将$SDK/tools加入系统路径,在运行adb和其它一些命令行工具时就不需要键入完全路径名了。需要注意到是,当你升级了SDK后,如果安装路径有变动的话,不要忘记了更新你的PATH变量的设置,将其指向变动后的路径。 安装Eclipse插件(ADT) 如果你选择Eclipse作为Android的开发环境,可以安装一个专门为Android定制的插件:Android Deve lopment Tools(ADT),ADT插件集成

Photoshop新手入门实例大全详细教程(二)

Photoshop新手入门实例大全详细教程(二) 目 录 4.照片边框处理 5.简单照片合成 6.快速蒙版教程 7.认识色阶 —————————————————————————————————————— (4):照片边框处理 今天我们来学习制作一个简单的照片边框,通过制作过程,来熟悉PS的一些工具与制作手法。 1、打开PS,打开一张照片。现在我们要为这张照片做一个背景图,并改变一下照片的边框。 2、 为背景层改名。 在图层面板,现在有一个图层名为“背景”。这个背景层的右边有一个小锁。凡是第一次打开一个 图片总是有这样一个上了锁的背景层。现在我们要改变它的名称。双击背景层,弹出一个对话框。在名称中写上“照片” 后按“好”字。 3、 创建新的图层。 按一下图层面板最下面的“创建新的图层”按钮,在背景层的上面出现了一个新图层,名称为 “图层1”。新图层是不会上锁的,改名就比较容易。我们可以双击这三个字,改名称为“新背景”。

4、凡是新建的图层,都是全透明的。我们可以看到在“新背景”这三个字左边有个小图,全是格子,这表示它是透明的。 我们还可以把“照片”层前的小眼睛关闭,这时,工作区中只有透明的格子样子了。现在我们要把“新背景”层填上颜色。 填充颜色分为两个步骤: A、 第一步:要确定前景色还是背景色。 现在到窗口菜单下点“颜色”,出来一个颜色面板。在颜色两字的下面,有二个方的色块。前面黑色的是前景色,后面白 色的是背景色。你需要设置前景色时(多数情况下我们是设置前景色),就点前面那块。现在我们按下前景色按钮。黑色 的方块的外面多了一个外框,表示现在是设置前景色。 B、 第二步:选择颜色。 可以选择颜色的地方有好几个。 右边的R右边由黑到红的长条下面,有一个小三角形,可以拉 动它来改变颜色。你可以把这三条都拉一下,再看前景色有什么变化。 最右边的数字框也可以直接填入由0到255之间的数字。例如:在R(红)里,填入217;在G(绿)里,填入253;在B里 填入249,现在前景色变成了浅绿色。这是RGB三原色组合表示一种颜色的方法。最下面有一个多彩的粗条,在这里可以

Android基础教程

Android基础教程 开始之前 本教程介绍如何在Eclipse 环境中进行Android 应用程序开发,包括两个示例应用程序。第一个示例是一个基本的应用程序,涉及构建和调试的所有阶段。第二个应用程序示例涉及比较复杂的Android 特性,包括联系人搜索和Google Maps 地址查找。要想从本教程获得最大收益,具备移动开发经验会有帮助,但不是必需的。开发Android 应用程序需要Java? 编程技能,但是对于本教程不是必需的。 关于本教程 我们为什么要关注Android?有两个原因使Android 成为重要的平台。首先,Google 引入了Android,它在很短时间内就获得了市场的关注。Google 正在进军移动市场。它在这个市场上采取的第一个行动就是发布Android 和Open Handset Alliance,这是一个令人印象深刻的起点。第二,Android 不仅仅是另一种包含电话、菜单和触摸屏功能的移动平台。您将在本教程中了解到,Android 提供了一种不同的应用程序开发方法。由于可以对请求的操作和代码进行运行时绑定,Android 的体系结构支持高度可定制的软件环境。无论是考虑市场因素还是Android 的技术方面,它都是一个值得研究的平台。 本教程分为以下几节: Android 基础知识和必需的工具

?Android Software Developer Kit ?构建和调试SaySomething Android 应用程序 ?创建内容提供器和Google Maps 应用程序 系统需求 本教程需要结合使用几种技术。 Eclipse 平台 Eclipse 是一个运行插件的平台。您应该安装Eclipse Classic 的最新版本(本教程使用V3.3.1)。 Android Developer Tools 按照安装Android SDK中的说明安装Android Developer Tools(Eclipse 插件)。 源代码 本教程中的源代码片段包括: ?AndroidManifest.xml(片段)—这个文件是Android 应用程序的应用程序部署描述符。 ?IntentReceiver —演示IntentReceiver的实 现,这个类处理AndroidManifest.xml 文件中 IntentFilter标记所公布的intent。 ?SaySomething.java —实现一个Android 活动,这 是本教程的示例应用程序的主要入口点。

ps新手入门实例大全详细教程

ps新手入门实例大全详细教程(二) 来源:网络作者:admin 发布时间:2011-06-29 点击:1262 目录 4.照片边框处理 5.简单照片合成 6.快速蒙版教程 7.认识色阶——————————————————————————————————————(4):照片边框处理 今天我们来学习制作一个简单的照片边框,通过制作过程,来熟悉PS的一些工具与制作手法。 1、打开PS,打开一张照片。现在我们要为这张照片做一个背景图,并改变一下照片的边框。 2、为背景层改名。在图层面板,现在有一个图层名为“背景”。这个背景层的右边有一个小锁。凡是第一次打开一个图片总是有这样一个上了锁的背景层。现在我们要改变它的名称。双击背景层,弹出一个对话框。在名称中写上“照片”后按“好”字。 3、创建新的图层。按一下图层面板最下面的“创建新的图层”按钮,在背景层的上面出现了一个新图层,名称为“图层1”。新图层是不会上锁的,改名就比较容易。我们可以双击这三个字,改名称为“新背景”。

4、凡是新建的图层,都是全透明的。我们可以看到在“新背景”这三个字左边有个小图,全是格子,这表示它是透明的。 我们还可以把“照片”层前的小眼睛关闭,这时,工作区中只有透明的格子样子了。现在我们要把“新背景”层填上颜色。 填充颜色分为两个步骤: A、第一步:要确定前景色还是背景色。 现在到窗口菜单下点“颜色”,出来一个颜色面板。在颜色两字的下面,有二个方的色块。前面黑色的是前景色,后面白色的是背景色。你需要设置前景色时(多数情况下我们是设置前景色),就点前面那块。现在我们按下前景色按钮。黑色的方块的外面多了一个外框,表示现在是设置前景色。 B、第二步:选择颜色。可以选择颜色的地方有好几个。右边的R右边由黑到红的长条下面,有一个小三角形,可以拉动它来改变颜色。你可以把这三条都拉一下,再看前景色有什么变化。 最右边的数字框也可以直接填入由0到255之间的数字。例如:在R(红)里,填入217;在G (绿)里,填入253;在B里填入249,现在前景色变成了浅绿色。这是RGB三原色组合表示一种颜色的方法。最下面有一个多彩的粗条,在这里可以多选一些颜色。最右边是黑白两色。这个颜色面板是非常方便来选择颜色的。更直观的方法是点“色板”标签。

Android移动应用开发基础教程(微课版)-教学大纲

《Android移动应用开发基础教程(微课版)》教学大纲 学时:62 代码: 适用专业: 制定: 审核: 批准: 一、课程的地位、性质和任务 Android移动应用开发基础是普通高等学校计算机科学与技术专业的一门重要的专业基础课。通过本课程的学习,使学生能够在已有的计算机基础知识基础上,对Android移动应用开发有一个系统的、全面的了解、为掌握移动应用开发打下良好的基础;在系统理解和掌握Android移动应用开发基本原理的基础上,了解和掌握移动应用开发的基本原理和方法,具有设计和开发Android移动应用APP的基本能力。 Android移动应用开发是一门实践性非常强的学科,它要求学生在理解和掌握Android移动应用开发语言语法的基础上,充分利用实验课程,在计算机上动手完成程序的编写和调试。 二、课程教学基本要求 1.课程教学以Android移动应用开发方法为主,在教学过程中让学生掌握Android移动应用开发的基本原理和方法。 2.要求在教学过程中合理安排理论课时和实验课时,让学生有充分的使用在计算机上练习理论课程中学到的Android移动应用开发技巧和方法。 三、课程的内容 第1章 Android开发起步 让学生了解Android平台特点、体系架构和版本,掌握如何搭建Android开发环境,熟悉如何创建Android项目和Android编程的日志工具 第2章 Android核心组件:活动 让学生了解Android核心组件之一的活动是什么、活动生命周期,掌握活动基本操作、在活动中使用Intent、在活动之间传递数据、活动的启动模式。 第3章 UI设计 让学生熟练掌握线性布局、相对布局、通用UI组件、消息通知和菜单。 第4章广播机制 让学生了解广播机制,并熟练掌握如何使用广播接收器。 第5章数据存储 让学生熟练掌握Android文件存储、共享存储和SQLite数据库存储。 第6章多媒体 让学生熟练掌握播放多媒体文件、记录声音、使用摄像头和相册。 第7章网络和数据解析

2016尚学堂Android开发入门教程

android开发者资料大全 第一篇:安装SDK 这里主要介绍如何安装Android的SDK开发包和配置开发环境。如果你还没有下载SDK,点击下面的链接开始。 Download the Android SDK 系统和软件配置要求 要通过Android SDK中提供的代码和工具进行Android应用程序的开发,需要一个合适的用于开发的电脑和合适的开发环境,具体要求如下: 支持的开发环境 Eclipse Eclipse 3.2,3.3(Europa) Android开发工具插件(可选) 其他的开发环境或者IDE JDK5.0或者JDK6.0(仅有JRE是不够的) 安装SDK 下载好SDK包后,将zip文件解压缩至合适的地方。在下文中,我们默认你的SDK安装目录为$SDK_ROOT 你可以选择将$SDK_ROOT/tools加入到你的路径中 1.Linux下,打开文件~/.bash_profile或者~/.bashrc,找到设定PATH环境变量的一行,将$SDK_ROOT/tools的完整路径加入其中。如果没有找到设定PATH变量的行,你可以自己添加一行: export PATH=${PATH}:<你的$SDK_ROOT/tools的完全路径> 2.Mac下,在你的home目录中找到文件.bash_profile,和Linux的一样处理。如果还没有在机器上设定这个文件,你可以创建一个.bash_profile文件。 3.Windows下,右键点击【我的电脑】,选择【属性】,在【高级】页中,点击【环境变量】按键,在弹出的对话框中双击“系统变量”中的变量“Path”,将$SDK/tools的完全路径加入其中。

PS入门基础教程-配图文说明

第一课:工具的使用 一、Photoshop 简介: Adobe 公司出品的Photoshop 是目前最广泛的图像处理软件,常用于广告、艺术、平面设计等创作。也广泛用于网页设计和三维效果图的后期处理,对于业余图像爱好者,也可将自己的照片扫描到计算机,做出精美的效果。总之,Photoshop 是一个功能强大、用途广泛的软件,总能做出惊心动魄的作品。 二、认识工具栏 1、 选框工具:用于选取需要的区域 ----选择一个像素的横向区域 ----选择一个像素的竖向区域

属性栏: 注:按shift 键+ 框选,可画出正方形或正圆形区域 2、 移动工具 : -----用于移动图层或选区里的图像 3、套索工具: ----用于套索出选区 ----用于套索出多边形选区 ----可根据颜色的区别而自动产生套索选区 4、魔术棒工具: ----根据颜色相似原理,选择颜色相近的区域。 注:“容差”,定义可抹除的颜色范围,高容差会抹除范围更广的像素。 5、修复工具: 且是 ----类似于“仿制图工具”,但有智能修复功能。 ----用于大面积的修复 一新 ----用采样点的颜色替换原图像的颜色 注:Alt+鼠标单击,可拾取采样点。 6、仿制图章工具----仿制图章工具从图像中取样,然后您可将样本应用到其它图像或同一图像的其它部分。 ----仿制图章工具从图像中取样,然后将样本应用到其它图像或同 一图像的其它部分(按Alt键,拾取采样点)。 ----可先自定义一个图案,然后把图案复制到图像的其它区域或其它图像上。

三、小技巧: ①、取消选区:【Ctrl +D 】 ②、反选选区:【Shif+F7】 ③、复位调板:窗口—工作区—复位调板位置。 ④、ctrl+[+、-]=图像的缩放 ⑤空格键:抓手工具 ⑥Atl+Delete = 用前景色填充 Ctrl+Delete = 用背景色填充 第二课:工具的使用二 一、工具栏 自由变换工具:【 Ctrl + T 】 2、使用框选工具的时候,按【Shift 】后再框选,则框选出正圆或正方形。 按【Alt 】后再框选,则选区以鼠标点为中心 3、 :可以使图像的亮度提高。 :可以使图像的区域变暗。 :可以增加或降低图像的色彩饱和度。 4、用前景色来填充:【Alt +Delete 】

《Android移动应用基础教程》中国铁道出版社课后习题(附答案)

Android 移动应用基础教程 习题答案 姓名: 班级: 联系方式:

第1章Android基础入门 一、填空题 1、Android是Google公司基于Linux平台开发的手机及平板电脑的操作系统 2、Android系统采用分层结构,由高到低依次为应用程序层、应用程序框架层、核心类库、Linux 内核。 3、ADB的常见指令中,用于开启ADB服务的是adb start-server。 4、在Android程序中,src目录用于放置程序的java代码文件。 5、Android程序开发完成后,如果要发布到互联网上供别人使用,需要将程序打包成.apk文件。 二、判断题 1、Android实际上就是一个手机。× 2、WCDMA是中国自己独自定制的3G标准,中国移动使用的就是这种标准。× 3、android第一个版本Android 1.1是2008年9月发布的。√ 4、gen目录是自动生成的,主要有一个R.java文件,该文件可手动修改。× 5、AndroidManifest.xml文件是整个程序的配置文件。√ 三、选择题 1、随着智能手机的发展,移动通信技术也在不断升级,目前应用最广泛的是(C) A、1G B、2G C、3G D、4G 2、ADT Bundle中包含了三个重要组成部分,分别是(ABC) A、Eclipse B、SDK C、SDK Manager,exe D、ADB 3、应用程序层是一个核心应用程序的集合,主要包括(B) A、活动管理器 B、短信程序 C、音频驱动 D、Dalivik虚拟机 4、ADB的常见指令中“列出所有设备”的指令是(C) A、adb uninstall B、adb install C、adb device D、adb emulator -avd 5、创建程序时,填写的Application Name表示(A) A、应用名称 B、项目名称 C、项目的包名 D、类的名字 四、简答题 1、简要说明Android体系结构中每个层的功能。 Android体系结构总共包含四层,分别是: ●应用程序层:设备上安装的软件应用都属于这一层 ●应用程序框架层:包含应用API ●核心类库:包含系统库和运行环境,系统库包含了底层C代码;运行环境包含了Java 的核心库和Dalvik虚拟机 ●Linux内核:提供Android的底层驱动。 2、简要说明ADB Bundle开发工具中SDK的作用。 SDK包含了Android的API源代码、各种工具、示例工程、用到的各种资源模板等。

Android APP开发入门教程

Android APP开发入门教程 这篇文章主要介绍了Android APP开发入门教程,从SDK下载、开发环境搭建、代码编写、APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下。 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的兴趣。于是凌晨一点睡不着写了第一个android 程序HelloAndroid,po出来分享给其他也想学习android开发的朋友,这么傻瓜的Android 开发入门文章,有一点开发基础的应该都能看懂。 一、准备工作 主要以我自己的开发环境为例,下载安装JDK和Android SDK,假如你没有现成的IDE,你可以直接下载SDK完整包,里面包含了Eclipse,如果有IDE那么你可以滚动到下面选择USE AN EXISTING IDE,然后安装SDK,如果你的SDK在安装时找不到JDK目录,你可以在系统环境变量里添加JAVA_HOME变量,路径为你的JDK目录,我的IDE是IntelliJ IDEA,都装好以后开始配置IDE增加SDK支持。 首先,打开Android SDK Manager把Android 4.0以上版本的未安装的都打勾装上,根据你个人实际情况,如果你只打算用自己的手机测试,那就把你机子系统一样版本的SDK 包装上,下载时间有点长。

然后打开IDE创建新项目,IDEA比较智能,如果你装好了SDK,新建项目里就会出现Android的Application Module,选择后右边Project SDK为空,点击New按钮,找到SDK 目录确定,下拉列表就会列出已经安装的各个版本的SDK,选择自己需要的版本,如果是第一次设置,IDE会提醒你先设置JDK,根据提示找到JDK目录即可。

入门-Android从入门到精通

1 Android 开发从入门到精通Array Android 开发从入门到精通 Android 是一种基于Linux? V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话和更廉价 的翻盖手机。但是,Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他 的平台和应用程序。本专题提供的教程、技术文章首先带大家了解Android 开发,进而深入到Android 开发的各个方面。 Android 开发入门 ?Android 开发简介 Android 是Google 提供的移动、无线、计算机和通信平台。通过使用Android Eclipse 插件,可以在强大的Eclipse 环境中构建Android 应用程序。本教程介绍如何用Eclipse 插件Android Development Tools 进行Android 应用 程序开发,包括对Android 平台和Android Development Tools 的介绍,并开发两个示例应用程序。 ?用Eclipse 开发Android 应用程序 Android 是一种基于Linux? V2.6 内核的综合操作环境。最初,Android 的部署目标是移动电话领域,包括智能电话 和更廉价的翻盖手机。但是,Android 全面的计算服务和丰富的功能支持完全有能力扩展到移动电话市场以外。Android 也可以用于其他的平台和应用程序。在本文中,阅读对Android 平台的简介,并学习如何编写基本的Android 应用程序。Array深入Android 开发 ?手机上的Scala Android 操作系统为移动开发提供强大、开放的平台。它利用了Java 编程语言和Eclipse 工具平台的威力。现在,还 可以将Scala 编程语言加入到其中。在本文中,您将看到如何使用Scala 作为Android 上的主要开发语言,从而可以 使用一种更具表达力、更加类型安全的编程语言编写移动应用程序。 ?构建Android 手机RSS 阅读器 本教程将展示如何使用Android Developer Tools 读取、解析和显示XML 数据。构建一个运行在Android 平台上的 RSS 阅读器,并集成不同的RSS 或其他XML 数据源以构建自己的mash-up 应用。 ?Android 助力云计算 开源的Android 操作系统已经席卷全球,它允许您在任何位置运行复杂的云计算应用程序。它设计用于在电池供电设备(如 T-Mobile G1 智能电话)上高效工作,Android 本质上就是Linux,Android 编程模型有多个层,允许创建为云计算量 身定做的安全应用程序。使用Android 达到新的高度并体验前所未有的移动计算吧。 ?使用Android 实现联网 Android 是面向应用程序开发的丰富平台,它提供一套出色的用户界面元素和数据管理功能。它还为开发连接到真实世界 的应用程序提供了出色的网络选项。您希望连接到哪里?也许您希望告诉全世界您正在使用Twitter。或者希望收到有关 在本地洗衣店或熟食店的排号。如果希望将Android 连接到您所生活的世界,那么请阅读本文。 ?深入探讨Android 传感器 Android 是一个面向应用程序开发的富平台,它拥有许多具有吸引力的用户界面元素和数据管理功能。Android 还提供了 一组丰富的接口选项。在本文中,学习如何配合使用Android 的各种传感器选项监控您的环境。样例代码展示了如何在 Android 电话中录制音频。想构建自己的婴儿监视器吗?想用声音来接听电话或者打开房门吗?请学习如何利用配备有 Android 的设备的硬件功能。

免费PS经典教程超级详细——Photoshop经典实例教程3000例

文章由情难枕精心整理,希望对大家的学习和工作带来帮助整理人:情难枕 整理时间:2011-4-10 PS经典教程 1、教你打造偏色艺术色调教程 2、·教你打造偏色艺术色调教程 3、Photoshop┾製造制造另类婚纱照片 4、⒈款粉帥氣de游戲做圖 5、PS(IR)可爱的棒棒糖 6、ps打造唯美色调 7、PS打造超炫人物效果 8、一款比较自然的眨眼教程 9、Photoshop最简易的磨皮法 10、Photoshop] 制作下雨的效果 11、小菱形背景和圆点背景的做法 12、[Photoshop] PS打造淡彩风格的幻眼效果 13、Photoshop] 用Photoshop滤镜打造梦幻艺术效果 14、Photoshop] 巧用PS打造镶满诱人钻石的文字 15、Photoshop] PS制作幽冥火焰 16、Photoshop] 简单的叠影制作方法 17、Photoshop] 制作冬季恋歌浪漫雪景效果 18、Photoshop] 用Photoshop设计另类树皮人体

19、Photoshop] 教你设计绚丽光芒效果 20、Photoshop] 教你设计胶片风情电影海报 21、Photoshop] 教你设计神秘炫光黑洞效果 22、Photoshop] PS特效字:闪亮钻石效果 23、[Photoshop] 巧绘晶莹剔透的水晶樱桃 24、Fireworks] QQ空间初级玩家必学的11条技巧 25、Flash] 给FLASH初学者的10点制作经验 26、Flash] Flash全屏效果全攻略 27、Photoshop] 利用PS图层样式绘制彩色玻璃立体文字 28、Photoshop] Photoshop制作逼真的洁白羽毛 29、Photoshop] 用PS把秋景照片变为冬景效果 30、[Photoshop] Photoshop教你给MM的衣服换个颜色 31、Photoshop] 用PS制作周迅的怀旧效果图 32、Photoshop] 转用PS轻松给MM衣服添加图案 33、Photoshop] 用PS的动态画笔制作鞭炮 34、Photoshop] 教你做天使翅膀的卡通效果 35、Photoshop] 制作融化的冰淇淋 36、Photoshop] 打造宇宙场景爆炸星球特效 37、Photoshop] 教你设计恐怖电影海报 Photoshop] 制作奔驰中的汽车 [Photoshop] 蝴蝶结边框

ps基础教程

一、魔术棒法——最直观的方法 适用范围:图像和背景色色差明显,背景色单一,图像边界清晰。 方法意图:通过删除背景色来获取图像。 方法缺陷:对散乱的毛发没有用。 使用方法:1、点击“魔术棒”工具; 2、在“魔术棒”工具条中,在“连续”项前打勾; 3、“容差”值填入“20”。(值可以看之后的效果好坏进行调节); 4、用魔术棒点背景色,会出现虚框围住背景色; 5、如果对虚框的范围不满意,可以先按CTRL+D取消虚框,再对上一步的“容差”值进行调节; 6、如果对虚框范围满意,按键盘上的DELE键,删除背景色,就得到了单一的图像。 二、色彩范围法——快速 适用范围:图像和背景色色差明显,背景色单一,图像中无背景色。 方法意图:通过背景色来抠图。 方法缺陷:对图像中带有背景色的不适用。 使用方法:1、颜色吸管拾取背景色; 2、点击菜单中“选择”功能里的“色彩范围”功能; 3、在“反相”项前打勾,确定后就选中图像了。 三、磁性索套法——方便、精确、快速和我常用的方法

适用范围:图像边界清晰。 方法意图:磁性索套会自动识别图像边界,并自动黏附在图像边界上。 方法缺陷:边界模糊处需仔细放置边界点。 使用方法:1、右击“索套”工具,选中“磁性索套”工具; 2、用“磁性索套”工具,沿着图像边界放置边界点,两点之间会自动产生一条线,并黏附在图像边界上。 3、边界模糊处需仔细放置边界点。 4、索套闭合后,抠图就完成了。 四、(索套)羽化法——粗加工 适用范围:粗略的抠图。 方法意图:粗略抠图,不求精确。 方法缺陷:图像边界不精确。 使用方法:1、点击“索套”工具; 2、用索套粗略地围住图像,边框各处要与图像边界有差不多的距离;这点能保证之后羽化范围的一致性,提高抠图的精确性; 3、右击鼠标,选择“羽化”功能; 4、调节羽化值,一般填入“20”,确定后就粗略选中图像了。羽化值的大小,要根据前一步边框与图像的间距大小调节。 五、(索套)钢笔工具法——最精确最花工夫的方法

Android应用开发入门教程(经典版)

Android应用开发入门教程(经典版) Linux公社(https://www.sodocs.net/doc/a013711144.html,)于2006年9月25日注册并开通网站,Linux现在已经成为一种广受关注和支持的一种操作系统,IDC是互联网数据中心,LinuxIDC 就是关于Linux的数据中心。 https://www.sodocs.net/doc/a013711144.html,提供包括Ubuntu,Fedora,SUSE技术,以及最新IT资讯等Linux专业类网站。

目录 第一篇Android系统结构和SDK使用 (5) 第1章 Android的系统介绍 (5) 1.1 系统介绍 (5) 1.2 软件结构和使用的工具 (7) 第2章 Android SDK的开发环境 (10) 2.1 Android SDK的结构 (10) 2.2 Android SDK环境安装 (11) 2.2.1. 安装JDK基本Java环境。 (11) 2.2.2. 安装Eclipse (12) 2.2.3. 获得Android SDK (12) 2.2.4(1). 在Eclipse 3.4(Ganymede)中安装ADT (14) 2.2.4(2). 在Eclipse 3.5(Galileo)中安装ADT (17) 2.2.5. 在Eclipse中配置Android SDK (20) 2.3 Android中运行仿真器环境 (21) 2.3.1. 建立Android虚拟设备 (21) 2.3.2. 运行虚拟设备 (22) 2.3.3. 使用Android中的工具 (23) 2.3.4. 使用logcat (24) 2.3.5. 使用仿真器控制 (25) 2.3.6. 命令行工具adb、mksdcard等 (26) 2.3.7. 使用设备控制 (28) 2.4 Android中建立工程 (29) 2.4.1. 建立工程 (29) 2.4.2. 查看和编辑各个文件 (31) 2.4.3. 运行工程 (33) 第二篇 Android应用程序的概述和框架 (36) 第3章 Android应用层程序的开发方式 (36) 3.1 应用程序开发的结构 (36) 3.2 API参考文档的使用 (36) 第4章Android应用程序示例 (40) 4.1 HelloActivity程序的运行 (40) 4.2 HelloActivity的源文件结构 (41) 4.2.1.Android.mk文件 (41) 4.2.2.AndroidManifest.xml文件 (42) 4.2.3.源代码文件 (42) 4.2.4.布局文件 (43) 4.2.5.其他资源文件 (43) 4.3 HelloActivity的编译结构 (43) 4.4 SkeletonApp的程序的运行 (44) 4.5 SkeletonApp的源文件结构 (44) 4.6 SkeletonApp的编译结构 (46) 第5章 Android应用程序的内容 (47) 5.1 Android应用程序的概念性描述 (47) 5.1.1.应用程序的组成部分 (47) 5.1.2.应用程序的生命周期 (48) 5.2 应用程序包含的各个文件 (50) 5.3 使用am工具启动Android应用程序 (51) 2

相关主题