您的位置:首页 > 其它

博文备份

2015-07-19 21:05 155 查看
在Android开发过程中加密密码常常采用md5加密方式,然而如果服务器端采用php开发(php采用md5加密很简单,直接md5($str)),很可能与java的md5加密不一致。以下方法是md5加密与php一致的源码:
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5 {
//密码加密 与php加密一致
public static String md5(String input) throws NoSuchAlgorithmException {
String result = input;
if(input != null) {
MessageDigest md = MessageDigest.getInstance("MD5"); //or "SHA-1"
md.update(input.getBytes());
BigInteger hash = new BigInteger(1, md.digest());
result = hash.toString(16);
while(result.length() < 32) {
result = "0" + result;
}
}
return result;
}

}import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5 {
//密码加密 与php加密一致
public static String md5(String input) throws NoSuchAlgorithmException {
String result = input;
if(input != null) {
MessageDigest md = MessageDigest.getInstance("MD5"); //or "SHA-1"
md.update(input.getBytes());
BigInteger hash = new BigInteger(1, md.digest());
result = hash.toString(16);
while(result.length() < 32) {
result = "0" + result;
}
}
return result;
}

}


1,return false说明你还没消费onTouch事件,在执行完你onTouch里面的代码之后,onTouch事件并没有结束。就是会自动地执行Gallery这个view里onTouch代码(这个为默认).所以这就是为什么没增加你的处理的时候就只自动地调用Gallery的onTouch,若你在onTouch里面增加你的代码并且return false就会执行你的处理和默认的处理。

2,return true说明你已经消费完了onTouch事件,在执行完你的onTouch里面的代码之后,这个onTouch事件就结束了。也就是说不会再调用默认的onTouch事件了。在onTouch里面有很多种的处理比如move,down,up....,若你在move里面return false,那么接着的fling,up等后面的事件也不会处理的。

onTouchEvent 中onTouch的返回值的意义

一,onTouch返回false

首先是onTouch事件的down事件发生,此时,如果长按,触发onLongClick事件;

然后是onTouch事件的up事件发生,up完毕,最后触发onClick事件。

二,onTouch返回true

首先是onTouch事件的down事件发生,然后是onTouch事件的up事件发生;期间不触发onClick和onLongClick事件

三,onTouch:down返回true,up返回false:结果同二。

机制分析:

onTouch事件中:down事件返回值标记此次事件是否为点击事件(返回false,是点击事件;返回true,不记为点击事件),而up事件标记此次事件结束时间,也就是判断是否为长按。

只要当down返回true时候,系统将不把本次事件记录为点击事件,也就不会触发onClick或者onLongClick事件了。因此尽管当up的时候返回false,系统也不会继续触发onClick事件了。

四,onTouch:down返回false,up返回true:

首先是onTouch事件的down事件发生,此时:

长按,触发onLongClick事件,然后是onTouch事件的up事件发生,完毕。

短按,先触发onTouch的up事件, 到一定时间后,自动触发onLongClick事件。

读书笔记:3D打印机如何工作?

Note:今天的个人3D打印机一般利用熔积成型(Fused
Filament Fabrication,FFF)的技术用塑料打印物品。其过程是在一个微小而精致的热熔胶枪喷嘴内融化并挤出塑料,然后通过沉积塑料丝的方式按层绘制,逐层累积融合,最终冷却形成坚固而耐用的塑料制品。

Note:3D打印机的分类:RepRap Family Tree

Note:核心灵感->笛卡尔机械(提供精确的线性定位),这种机械可以沿着三个方向移动,分别是X,Y,Z轴,这种坐标系称为笛卡尔坐标系。3D打印机需要使用具有较高精度和准度的小型步进电机,通常是1.8度/步,再通过细分控制步进电机使精度达到1毫米。

Note:3D打印机可通过同步带和同步轮沿X轴和Y轴提供[u]快速而精确[/u]的定位,Z轴则大多使用螺纹杆或丝杆来精准定位

Note:[u]③[/u]热熔塑料进料头(最复杂?):挤出细的热熔丝——一种加热后会变软呈半流体状的塑料(材料?)。进料头好像是3D打印机最复杂的部分,目前还在不断改进。该部分主要两个关键部分组成:挤丝驱动器热熔加头。

挤丝驱动器通过[u]齿轮驱动机构[/u]拉动绕在线轴上的热熔丝[u](热熔丝,热的?X)[/u],热熔丝的直径一般是3毫米或1.75毫米。大部分情况下,挤丝驱动器通过一个步进电机来控制进入加热头的流量,为了增加驱动力,这些电机通常连接一个打印的齿轮或者一个变速箱。

加热头通常与进料头的其余部分是[u]隔热的(?)[/u],它由一大块铝块(?)嵌入式加热器件或其他加热组件以及一个[u]温度传感器[/u]构成,当热熔丝到达加热头,就会被加热到170-200摄氏度,(加热的温度由具体的热熔丝种类决定),当热熔丝变成半流体状,就会通过加热头下方0.35-0.5毫米自己的开口流出,并在打印托盘上绘制当前打印层的外围轮廓或者根据填充方式进行内部填充

Note:[u]④打印托盘[/u]——打印东西的平台:目前市场上的大部分个人打印机会提供一个能自加热(?)的打印托盘。打印托盘用来A.防止打印物品在冷却时变形或开裂,同时B.[u]保证物品的底部牢牢地粘在打印托盘[/u]上。

为了保证良好的导热性,以及表面的光滑和水平,打印托盘的上面一层通常是玻璃(光滑)或铝板(导热性好)。为了[u]防止物品在打印过程中从托盘上掉下来[/u],根据打印时的热熔丝种类,在托盘表面通常会贴上一层价格便宜、可定期更换的胶带

Note:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: