当前位置: 编程技术>移动开发
本页文章导读:
▪androir打包工具-java压缩成apk有关问题 androir打包工具----java压缩成apk问题
打包工具流程: 1.在eclipse中到处未签名的apk 2.用java将其解压 3.修改一些文件, 4.用java压缩成apk 5.对apk签名 整个流程在压缩这一环出现了问题.........
▪ 事宜的使用 事务的使用
// 保存同步过来的User数据
public static void setUserList_YC(Context con, List<User> ulist) {
long beginTime = System.currentTimeMillis();
DatabaseHelper dbhelper = new DatabaseHelper(con, con.getString(R.string.dbname.........
▪ 应用NSTimer与UIView的动画,实现飘雪效果 使用NSTimer与UIView的动画,实现飘雪效果
使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,.........
[1]androir打包工具-java压缩成apk有关问题
来源: 互联网 发布时间: 2014-02-18
androir打包工具----java压缩成apk问题
打包工具流程:
1.在eclipse中到处未签名的apk
2.用java将其解压
3.修改一些文件,
4.用java压缩成apk
5.对apk签名
整个流程在压缩这一环出现了问题,java将文件压缩成apk时在每个文件下多了一个无名且文件大小为0的文件,签名安装后,打开程序报xml文件找不到。
试过手动删除无效文件再签名,一切OK
压缩方法如下:
//对文件进行压缩
public static void zip(String sourceDir, String zipFile) {
OutputStream os;
try {
os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
ZipOutputStream zos = new ZipOutputStream(bos);
File file = new File(sourceDir);
String basePath = null;
if (file.isDirectory()) {
basePath = file.getPath();
} else {
basePath = file.getParent();
}
zipFile(file, basePath, zos);
zos.closeEntry();
zos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(".......文件压缩成功");
FileUtil.deleteDirectory(sourceDir);
}
private static void zipFile(File source, String basePath,
ZipOutputStream zos) {
File[] files = new File[0];
if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}
String pathName;
byte[] buf = new byte[BUFFER];
int length = 0;
try {
for (File file : files) {
if (file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1)+ "\\";
zos.putNextEntry(new ZipEntry(pathName));
zipFile(file, basePath, zos);
} else {
pathName = file.getPath().substring(basePath.length() + 1);
InputStream is = new[/size] FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry(new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
is.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
希望大神们看下什么问题导致的[/size]
打包工具流程:
1.在eclipse中到处未签名的apk
2.用java将其解压
3.修改一些文件,
4.用java压缩成apk
5.对apk签名
整个流程在压缩这一环出现了问题,java将文件压缩成apk时在每个文件下多了一个无名且文件大小为0的文件,签名安装后,打开程序报xml文件找不到。
试过手动删除无效文件再签名,一切OK
压缩方法如下:
//对文件进行压缩
public static void zip(String sourceDir, String zipFile) {
OutputStream os;
try {
os = new FileOutputStream(zipFile);
BufferedOutputStream bos = new BufferedOutputStream(os);
ZipOutputStream zos = new ZipOutputStream(bos);
File file = new File(sourceDir);
String basePath = null;
if (file.isDirectory()) {
basePath = file.getPath();
} else {
basePath = file.getParent();
}
zipFile(file, basePath, zos);
zos.closeEntry();
zos.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(".......文件压缩成功");
FileUtil.deleteDirectory(sourceDir);
}
private static void zipFile(File source, String basePath,
ZipOutputStream zos) {
File[] files = new File[0];
if (source.isDirectory()) {
files = source.listFiles();
} else {
files = new File[1];
files[0] = source;
}
String pathName;
byte[] buf = new byte[BUFFER];
int length = 0;
try {
for (File file : files) {
if (file.isDirectory()) {
pathName = file.getPath().substring(basePath.length() + 1)+ "\\";
zos.putNextEntry(new ZipEntry(pathName));
zipFile(file, basePath, zos);
} else {
pathName = file.getPath().substring(basePath.length() + 1);
InputStream is = new[/size] FileInputStream(file);
BufferedInputStream bis = new BufferedInputStream(is);
zos.putNextEntry(new ZipEntry(pathName));
while ((length = bis.read(buf)) > 0) {
zos.write(buf, 0, length);
}
is.close();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
希望大神们看下什么问题导致的[/size]
[2] 事宜的使用
来源: 互联网 发布时间: 2014-02-18
事务的使用
// 保存同步过来的User数据 public static void setUserList_YC(Context con, List<User> ulist) { long beginTime = System.currentTimeMillis(); DatabaseHelper dbhelper = new DatabaseHelper(con, con.getString(R.string.dbname)); SQLiteDatabase db = dbhelper.getWritableDatabase(); // 开启事务 lilin 2012-1-16 db.beginTransaction(); for (User u : ulist) { String szm = ""; szm = HanzhisToPinYin.cn2FirstSpell(u.name); db.execSQL( "insert into user(userguid,ouguid,name,phonenum,namepyshou) values(?,?,?,?,?)", new String[] { u.userguid, u.ouguid, u.name,u.phonenum, szm }); } db.setTransactionSuccessful();// 设置事务标志为成功,当结束事务时就会提交事务 db.endTransaction();// 结束事务 long time = (System.currentTimeMillis() - beginTime) / 1000; System.out.println("保存人员时间:" + time); close(dbhelper, db, null); }
[3] 应用NSTimer与UIView的动画,实现飘雪效果
来源: 互联网 发布时间: 2014-02-18
使用NSTimer与UIView的动画,实现飘雪效果
使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。
-(void)viewDidLoad{
[super viewDidLoad];
self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片
//启动定时器,实现飘雪效果
[NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES];
}
然后再实现定时器定时调用的ontime方法:
-(void)ontime{
UIImageView *view = [[UIImageView alloc] initWithImage:pic];//声明一个UIImageView对象,用来添加图片
view.alpha = 0.5;//设置该view的alpha为0.5,半透明的
int x = round(random()%320);//随机得到该图片的x坐标
int y = round(random()%320);//这个是该图片移动的最后坐标x轴的
int s = round(random()%15)+10;//这个是定义雪花图片的大小
int sp = 1/round(random()%100)+1;//这个是速度
view.frame = CGRectMake(x, -50, s, s);//雪花开始的大小和位置
[self.view addSubview:view];//添加该view
[UIView beginAnimations:nil context:view];//开始动画
[UIView setAnimationDuration:10*sp];//设定速度
view.frame = CGRectMake(y, 500, s, s);//设定该雪花最后的消失坐标
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
原文地址:http://www.voland.com.cn/the-use-of-a-simple-nstimer-with-uiview-animation-effects-to-achieve-snowing
使用NSTimer与iphone的简单动画,实现飘雪效果,这理原理比较简单,就是定时生成一定的雪花图片,然后使用动画的方式向下漂落(我在其它论坛,看到使用path的方式实现的一个云漂来漂去的效果,实际也可以用那种方式实现,这实际就是前面说的动画效果的两种应用)。所以,我们可以在viewDidLoad事件中,增加一个图片及定时器并启动,这里的pic请在头文件中定义。
-(void)viewDidLoad{
[super viewDidLoad];
self.pic = [UIImage imageNamed:@"snow.png"];//初始化图片
//启动定时器,实现飘雪效果
[NSTimer scheduledTimerWithTimeInterval:(0.2) target:self selector:@selector(ontime) userInfo:nil repeats:YES];
}
然后再实现定时器定时调用的ontime方法:
-(void)ontime{
UIImageView *view = [[UIImageView alloc] initWithImage:pic];//声明一个UIImageView对象,用来添加图片
view.alpha = 0.5;//设置该view的alpha为0.5,半透明的
int x = round(random()%320);//随机得到该图片的x坐标
int y = round(random()%320);//这个是该图片移动的最后坐标x轴的
int s = round(random()%15)+10;//这个是定义雪花图片的大小
int sp = 1/round(random()%100)+1;//这个是速度
view.frame = CGRectMake(x, -50, s, s);//雪花开始的大小和位置
[self.view addSubview:view];//添加该view
[UIView beginAnimations:nil context:view];//开始动画
[UIView setAnimationDuration:10*sp];//设定速度
view.frame = CGRectMake(y, 500, s, s);//设定该雪花最后的消失坐标
[UIView setAnimationDelegate:self];
[UIView commitAnimations];
}
原文地址:http://www.voland.com.cn/the-use-of-a-simple-nstimer-with-uiview-animation-effects-to-achieve-snowing
最新技术文章: