3月3日,Android发布了《Fragment For All》,标明Android为兼容各个低版本(最低1.6)做出了实质性的行动。
Fragment API类似iOS的Split View。另外,看过Fragment API以后,觉得应该也可以实现iOS的Popover。split view可见这里。popover可见简单的popover。
在Android 2.3.2上测试了Fragment的简单使用。效果如下:
模拟了split view的使用。
比如:http://www.iciba.com/imperious/,那么音标是:
[ɪmˈpɪəri:əs]
怎么显示它,这是个问题。
下面图是不正确的显示音标(左)和正确显示的截图:
下面说说如何解决的。
当然不是官版的,最近官版的也推出了,2.3.3。我这里是用的CyanogenMod,一般简称CM,版本是7.0RC1。
更新只需参照以下链接即可:
http://wiki.cyanogenmod.com/index.php?title=Nexus_One:_Full_Update_Guide
我原来的版本是国内的农夫ROM,应该是在CM基础上定制的。
看到wordpress发布新版本,就自动升级了。之前升级都没有遇到问题。这次碰到了。
现象是点击分类后显示的还是默认首页。
在这里找到答案:
我的问题是安装并使用了simple tag。其实我也不用。我直接停掉了。问题解决。
还没有时间了解3.1版本增加了哪些功能。仅从界面上看,如果登录了,界面稍有不同。
多了一个方便博主管理用的工具条。
我一般都尽量主动升级Wordpress,目的不是为了追新,而是为了跟上wordpress开发者的节奏,防止以后由于版本差异过大,不好升级。目前的短促升级,即使发现问题也比较好解决。
iOS可通过两种方式播放声音:
- 播放压缩的声音文件,比如mp3文件,一般使用播放声音中提到的方法,适用于播放时间较长,比如大于30秒,AVAudioPlayer可以提供更多的控制特性,比如暂停等等
- 播放系统声音,比如翻页的哗啦声,应该使用播放系统声音的方法,因为压缩的声音文件比播放wav等非压缩声音文件在播放前消耗更多的处理器资源,这样的声音还要频繁的播放,而且,因为系统声音文件都较小,一般小于30秒,因此即使压缩格式,也不会节省多少存储空间。
本文介绍后者,播放系统声音。
系统声音属于AudioToolbox框架,因此使用前,需要给项目安装框架:
编写了个类似这样的视图动画。
其中灰色部分是子视图(UIView)。点击一下,就上移,再点击就退回。
上来需要添加的是tap手势的处理:
UITapGestureRecognizer *recognizer=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];
[self addGestureRecognizer:recognizer];
[recognizer release];
在iOS中如何将两张图混合成一张图呢?比如有一张是透明图,另外一张是不透明的,混合为一张图,并且保存起来。有关保存可见将图片保存到照片相册中。
上图所示,可将红色手绘的色彩图片和原来的图层混合。
如何将图片保存到iOS自带的Photo Album中呢?
这是调用api生成的当前绘制的图形。
代码很简单:
UIImageWriteToSavedPhotosAlbum(drawImage.image, nil, nil, nil);
这里drawImage是一个UIImageView。
日志引用
在在界面中显示文本内容中写入UITextView的文本,如何保存?
可以使用NSUserDefaults:
NSUserDefaults *textData;
该实例实际上是NSDirectory,保存键值对。在使用中,首先检查是否有该键值对,如果有赋值给TextView的text属性。
- (void) initTextView{
textData=[NSUserDefaults standardUserDefaults];
textview=[[UITextView alloc] initWithFrame:CGRectMake(550, 140, 400, 300)];
textview.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
textview.textColor = [UIColor blackColor];
textview.font = [UIFont fontWithName:@"Arial" size:24];
textview.editable = YES;
textview.scrollEnabled = YES;
textview.delegate=self;
if ([textData objectForKey:@"page12.text.data"]!=nil) {
textview.text=[textData objectForKey:@"page12.text.data"];
}
[self addSubview:textview];
}