轻松编辑5.5版开始支持查看浏览器的网页源代码。只需将要查看的网页通过浏览器分享,选择 轻松编辑 即可查看。而先前版本的轻松编辑则只能查看到网页的URL地址,实在没必要,因为网址可以通过浏览器的地址栏复制。所以5.5版开始轻松编辑会自动识别浏览器或者其它APP发给它的网址,并抓取该网址下的网页源代码。

5.5版的 轻松编辑 还支持二维码、条形码扫描输入,不过需要 条码制作器 的支持。轻松编辑 会调用 条码制作器 的扫描器扫描条码,并将获得的扫描结果插入到文本中,非常方便!

目前新版的轻松编辑已经可以从应用市场下载,欢迎使用!

device-2014-10-22-184040

 

device-2014-10-22-184101

最近在更新《轻松编辑》《IP摄像头》的网页服务器部分时,遇到了两个String的问题。

第一个是获取String占用的内存字节数,自己想当然直接用length()函数取得了长度了,可到了socket发送数据的时候总是发送不完整(字符串中包含中文),后面Debug之后才发现length得到的是字符数,而不是内存中的字节数,一个中文在UTF8编码下要占用3个字节,自然得到的长度变短了,所以发送不完整。正确做法是getBytes(),再在返回的数组中取length。

第二个是截取String指定区间的子字符串,函数substring (int start, int end)。比如要取索引2到5这4个字符,直接substring (2, 5)……然后得到的是索引2到4三个字符组成的字符串,索引5的那个字符并没有出现,后面查了一下谷歌,才发现substring (int start, int end)返回的字符串不包含索引end的字符!!!所以正确的应该是substring (2, 6)。

发现了这两个特别注意的地方,就是不知道先前的代码有没出现过这两个错误。

在开发《轻松编辑》5.1版的快速打开文本文件时,遇到了如何快速获取SD卡上所有文本文件的问题。查了API,发现MediaStore可以使用。MediaStore可以获取音乐、视频和图片等,在API level 大于11后还可以获取其它文件,比如文本,或者doc,pdf。

相关代码如下:

@TargetApi(11)
private void refreshList(){
	String[] columns = new String[] {
		MediaStore.Files.FileColumns.TITLE,
		MediaStore.Files.FileColumns.DATA
	};
	Uri uri = MediaStore.Files.getContentUri("external");
	String selection = "(" + MediaStore.Files.FileColumns.MIME_TYPE + "=='text/plain')";
	Cursor c = getContentResolver().query(uri, columns, selection, null, MediaStore.Files.FileColumns.SIZE + " DESC");
	if (c == null) {
		return;
	}
 
	if (c.moveToFirst()) {
		int dataIndex = c.getColumnIndex(MediaStore.Files.FileColumns.DATA);
		int titleIndex = c.getColumnIndex(MediaStore.Files.FileColumns.TITLE);
		do {
 
			c.getString(titleIndex); // 获取文件名,不包含扩展名
			c.getString(dataIndex);  // 获取文件实际路径
 
		} while (c.moveToNext()); // 循环获取文件
	}
}

注意:MediaStore.Files这个类要到API Level 11才能使用,这就是《轻松编辑》在Android 3.0版本以下不能启用快速打开文本的原因。其实这个可以解决的,比如在android 3.0以下用手动来获取,可如果SD卡上文件很多的话,这个时间就很漫长了,所以还是不加好。

轻松编辑5.0版可以自动对大于5000个字符的文本文件进行分页,这样你就可以更加流畅地查看文本文件,不再有卡顿感。按照这个版本的设计,每个页面的字符最多为5120个,如果文本文件的字符数量大于这个数,将被自动分页。配合5.0版新增加的底部导航按钮,你可以快速在各个页面之间切换。

《轻松编辑》打开1.5MB的《金瓶梅》 《轻松编辑》打开1.5MB的《金瓶梅》

新版变化
1.优化UI,将大部分文件操作移到左边的菜单,在左边缘向内侧滑动即可打开
2.支持打开1M以上的文本文件
3.增加自动分页,即使大文件也可以流畅查看
4.优化字符串处理效率
5.可以自定义是否启用拼写检查
6.修复打开大文件时应用可能卡死的错误
7.打开文件时如果有空的标签页将会被利用,而不是再打开新的标签页
8.内存占用优化
下载

Google Play  从应用汇下载 安智下载

发现《轻松编辑》的菜单长得有些恐怖,就想用Drawer代替部分文件操作的菜单,这样原来的菜单就简单很多了。发现按照谷歌的方法添加好Drawer后(参见《Navigation Drawer》)ActionBar图标旁边没有显示指示器,也就是那三条线,后来网上找到了办法,部分代码如下:

mDrawerToggle = new ActionBarDrawerToggle(
		this,
		mDrawer,
		R.drawable.ic_navigation_drawer, // Drawer 的 Icon,那三条线
		R.string.file,
		R.string.app_name
) {
	@Override
	public void onDrawerOpened(View drawerView) {
		getSupportActionBar().setTitle(R.string.file);
	}
 
	@Override
	public void onDrawerClosed(View drawerView) {
		getSupportActionBar().setTitle(R.string.app_name);
	}
};
mDrawer.setDrawerListener(mDrawerToggle);
//getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 
// 以下是显示那三条线的关键
mDrawer.post(new Runnable() {
	@Override
	public void run() {
		mDrawerToggle.syncState();
	}
});
轻松编辑

轻松编辑

处理后的《轻松编辑》感觉好多了,新版本见!