0.
不同包中activity的跳转总是不能生成R.java文件,是因为在子包中需要导入的是主包的R文件,而不是android.R; 或者,在R不能解析时,将import android.R去掉
1.imageView的matrix属性 使对折以后的图 还是停留在左上角 而不是居中
2.注意imageButton控件的获取 也需要用imageButton对象 这边设置的几个对折之类的按钮全都是imageButton 一开始用Button对象获取 一直无法进入scrawlpage页面
3. 撇对折时 应该是i+j<=bmp.width-1而不是i+j<bmp.width
4. 出现 “save can not be completed……GBK……” 好像是编码的问题 然后 对新加入的段逐段剪切 找到出错区域 重新再写一遍就对了~~
5. 29号实现控件的拖动了,主要是这片文章 http://blog.csdn.net/aomandeshangxiao/article/details/7415618
需要注意的几点: activity 的声明需要加 implements OnTouchListener 然后像 ImageView和TextView这些控件,要想实现拖动,要在xml文件中设置它的clickable为true
多指触摸放大:根据两指间距离的变化来计算放大倍数
计算空间的left,right,top,bottom参数的各个具体值,然后传到v.layout的参数里设置控件的位置 多指放大的另外一种途径是根据其scaletype的matrix属性,对matrix做各种相应变化~~~
1.imageView的matrix属性 使对折以后的图 还是停留在左上角 而不是居中
2.注意imageButton控件的获取 也需要用imageButton对象 这边设置的几个对折之类的按钮全都是imageButton 一开始用Button对象获取 一直无法进入scrawlpage页面
3. 撇对折时 应该是i+j<=bmp.width-1而不是i+j<bmp.width
4. 出现 “save can not be completed……GBK……” 好像是编码的问题 然后 对新加入的段逐段剪切 找到出错区域 重新再写一遍就对了~~
5. 29号实现控件的拖动了,主要是这片文章 http://blog.csdn.net/aomandeshangxiao/article/details/7415618
需要注意的几点: activity 的声明需要加 implements OnTouchListener 然后像 ImageView和TextView这些控件,要想实现拖动,要在xml文件中设置它的clickable为true
多指触摸放大:根据两指间距离的变化来计算放大倍数
计算空间的left,right,top,bottom参数的各个具体值,然后传到v.layout的参数里设置控件的位置 多指放大的另外一种途径是根据其scaletype的matrix属性,对matrix做各种相应变化~~~
6.cavas在bitmap上绘制path
7.toast每次最后加.show(),擦
8.移植的难点30号实现剪裁:实现bitmap上的path内部区域置为白色,之前考虑的有两种方案:
1)要用clippath方法,但是这个保留的区域是path内部,跟我们的剪纸是相反的
2)通过CFS(一个递归的方法,每次找相同颜色的相邻点)探测闭合区域,将path内的闭合区域探测出来置为白色,但是这个方法运行速度太慢
最终通过这个方法http://tw.myblog.yahoo.com/jw!VC_G8MyHBxtRhlvgTUozAPg-/article?mid=573
主要通过path.computeBounds将边界上的点放到一个rectF对象中 然后通过Region的setpath方法将内部区域记录下来 然后通过re.contains函数判断点是不是在区域内 如果在区域内 那么把这个点置为白色
9.清除触屏轨迹:将这次触屏的path从canvas上去除~~ 只要将paint的颜色置为纸张颜色 然后在up事件里再将path重绘一遍就可以了~
7.toast每次最后加.show(),擦
8.移植的难点30号实现剪裁:实现bitmap上的path内部区域置为白色,之前考虑的有两种方案:
1)要用clippath方法,但是这个保留的区域是path内部,跟我们的剪纸是相反的
2)通过CFS(一个递归的方法,每次找相同颜色的相邻点)探测闭合区域,将path内的闭合区域探测出来置为白色,但是这个方法运行速度太慢
最终通过这个方法http://tw.myblog.yahoo.com/jw!VC_G8MyHBxtRhlvgTUozAPg-/article?mid=573
主要通过path.computeBounds将边界上的点放到一个rectF对象中 然后通过Region的setpath方法将内部区域记录下来 然后通过re.contains函数判断点是不是在区域内 如果在区域内 那么把这个点置为白色
10.展开逻辑:在每次触屏完毕事件中,记录这次触屏的闭合区域,根据折叠的逆序,对将区域逐次做轴对称 java的LinkedList跟C#的List差不多~~
11.由于每次的作品需要让用户来选择是否保存以使其可以在“arts show”模块里欣赏到,这样的话就涉及到了 数据的存储:http://www.cnblogs.com/hanyonglu/archive/2012/03/01/2374894.html (在wp里面是用这个函数Extensions.SaveJpeg将图片放到独立存储里)
1) sharedPreferences 常用来存储一些配置信息如窗口状态 只能存储基本类型数据:int string boolean float long 不能条件查询
实现步骤:通过context获取SharedPreferences对象 利用edit()方法获取Editor对象 通过Editor对象存储key-value键值对数据 commit()方
法提交数据
2) 文件存储:可以存储文本、图片、音频等 windows->view->other->android->file explorer可以看到sharedpreference生成的.xml文件盒这个
文件存储的文件
3) SQLite数据库:http://blog.csdn.net/liuhe688/article/details/6715983
12. 单例模式:需要在两个页面间传递Bitmap 可以定义一个全局类,然后定义静态的方法或变量来保存全局要用到的变量
因为Bitmap数据类型 不可序列化,不能用消息机制(Intent--bundle)来传递
用bundle传递代码:
- Intent intent = new Intent();
- intent.setClass(TestBundle.this, Target.class);
- Bundle mBundle = new Bundle();
- mBundle.putString("Data", "ray'blog");//压入数据
- intent.putExtras(mBundle);
- startActivity(intent);
在接收的类里:
- Bundle bundle = getIntent().getExtras();
- String data=bundle.getString("Data");//读出数据
而getRawX()是表示相对于屏幕左上角的x坐标值(注意:这个屏幕左上角是手机屏幕左上角,不管activity是否有titleBar或是否全屏幕),getY(),getRawY()一样的道理