《让青春继续》Android版
不知道有多少人知道这个小说,如果你知道,那你可能是我的校友。就是这部小说陪我度过了去上大学前的那后半个暑假,如今已走出校园,把它做成一个Android应用也算是让青春继续吧! 下载地址: 点我下载到本地,点我去Google官方商店下载,您还可以在国内的五大应用商店下载到本应用。 有图有真相:
不知道有多少人知道这个小说,如果你知道,那你可能是我的校友。就是这部小说陪我度过了去上大学前的那后半个暑假,如今已走出校园,把它做成一个Android应用也算是让青春继续吧! 下载地址: 点我下载到本地,点我去Google官方商店下载,您还可以在国内的五大应用商店下载到本应用。 有图有真相:
虽然ubuntu的应用源里就有eclipse,但是版本比较低,而且是最精简版的,以至于安装Android的ADT插件都需要解决很多依赖,所以,作为Android开发人员往往都是去eclipse网站上去下载eclipse然后解压直接运行的。这样虽然也很方便,但是有一个问题,就是不能加入到快捷菜单中直接运行,很不方便。以下是解决办法: 在桌面或者启动面板上添加图标 在桌面(右键单击桌面->创建启动器)或面板(右键单击面板->添加到面板 ->定制应用程序启动器)上创建一个新的启动器,然后添加下列数据: 名称:Eclipse 命令:eclipse 图标: /home/istar/eclipse/icon.xpm 在Applications(应用程序)菜单上添加一个图标 用文本编辑器在/usr/share/applications目录里新建一个名为eclipse.desktop的启动器,如下面的命令: sudo vi /usr/share/applications/eclipse.desktop 或者 sudo gedit /usr/share/applications/eclipse.desktop 然后在文件中添加下列内容: [Desktop Entry] Encoding=UTF-8 Name=Eclipse Comment=Eclipse IDE Exec=eclipse Icon=/home/istar/eclipse/icon.xpm Terminal=false StartupNotify=true Type=Application Categories=Application;Development; 保存文件就OK了。
又有新作品上线了,除了中途夭折的几个应用,这还只是我个人的第二个应用。其实这个应用技术含量不高,只是一个文本展示,算是一个电子书吧,书的内容是网络纯情小说《和空姐同居的日子》。作为一个技术宅男,本人很少看书,而同时具有网络和小说两个关键字的书好像只有《和空姐同居的日子》了。当时好像还是大一,拿着我的山寨手机看的,小说确实很吸引人,很纯情,和吸引眼球的标题大相径庭。当时和我一起看这个小说的还有我们宿舍的宁宁和屁锦,而宁宁更是把这个小说看了N遍,真的,不信去问他自己! 上面说的应该有足够的理由让我把这本书搬上咱们伟大的Android平台了,另外,作为尝试,我还在应用中加入了广告,没事的朋友可以点点啊!考虑到大部分兄弟姐妹可能比较反感广告,应用中还加入了关闭广告的设置项。还有,写完这个应用才发现,原来这个小说早就被出版成书了,还被拍成电影和电视剧,所以不知道这样算不算侵权,如果有,我肯定会第一时间撤下的(其实做应用中也有说明)。 说了这么多,还是来看看应用吧,有图有真相!另附下载地址:点我下载到本地 点我去Google商店下载,另外在国内的各大应用商店也可以下到。
每次进入到android source 目录后的第一件事恐怕就是先执行. build/envsetup.sh,完成一些命令的初始化,今天主要分析envsetup.sh。 1. 命令-也就是envsetup.sh中的函数 function help() # 显示帮助信息 function get_abs_build_var() # 获取绝对变量 function get_build_var() # 获取绝对变量 function check_product() # 检查product function check_variant() # 检查变量 function setpaths() # 设置文件路径 function printconfig() # 打印配置 function set_stuff_for_environment() # 设置环境变量 function set_sequence_number() # 设置序号 function settitle() # 设置标题 function choosetype() # 设置type function chooseproduct() # [...]
做应用时不可避免地要用到网络连接,如果每次连接都new一个HttpClient无疑是很浪费资源的,程序性能也不高,在这种情况下完全可以使用单例来做,请看以下代码: public class HttpUtil { public static final String TAG = “HttpUtil”; private static final String CHARSET = HTTP.UTF_8; private static HttpClient mHttpClient; private HttpUtil() { } public static synchronized HttpClient getHttpClient() { if (null == mHttpClient) { HttpParams params = new BasicHttpParams(); // 设置一些基本参数 HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1); HttpProtocolParams.setContentCharset(params, CHARSET); HttpProtocolParams.setUseExpectContinue(params, true); HttpProtocolParams .setUserAgent( params, “Mozilla/5.0(Linux;U;Android [...]
在Android应用开发中有时候可能需要将一张彩色图片变成一张灰度图,除了PS可以达到这种效果以外,我们也可以用代码来实现,以下是Java实现的转换算法: /** * 把资源图片转为灰度图 * @param resID 资源ID * @return */ public Bitmap convertGrayImg(int resID) { Bitmap src=((BitmapDrawable) getResources().getDrawable(resID)).getBitmap(); int w=src.getWidth(),h=src.getHeight(); int[] pix = new int[w * h]; src.getPixels(pix, 0, w, 0, 0, w, h); int alpha=0xFF<<24; for (int i = 0; i < h; i++) { for (int j = 0; j < w; [...]
以前曾发布过一个《用Java实现的农历公历互转》,后来发现从2012年开始就有问题(莫非真有世界末日?),于是试着去网上找答案,发现公历转农历的很多,但农历转公历的似乎没有。只好自己动手了,也希望能帮助各位同学解决一下碰到的问题,我深知搜索半天都找不到答案的苦恼,:) 其实这也不算是原创,是根据一个PHP代码改成Java代码的,修复了一些小bug并改成了Java风格,暂时还没发现新问题。另外传入的参数和返回值可能设计得不是很好,现在是返回一个“yyyy-MM-dd”型的字符串,可能返回一个int数组更好,还可以标记农历的闰月,各位根据自己的需求去改吧,在此抛砖引玉! 好了,有代码有真相: /** * 该类实现了公历与农历互转,支持的范围为1950~2050.</br> * 传入和返回的参数都为“yyyy-MM-dd”的字符串。 * * @author iStar */ public class LunarUtil { /** 农历从1950年开始 */ private static final int START_YEAR = 1950; private static SimpleDateFormat mDateFormat = new SimpleDateFormat(“yyyy-MM-dd”); /** 公历月份天数 */ private static final int[] mSolarDays = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; [...]
今天为我们提供定制应用的第三方软件商给我提了一个需求,问能不能让应用在我们的系统上安装以后用户不能移动到SD卡。这是个很费神的问题,以前曾经特意去研究了一下这个问题,看了半天的源码,还是没有发现Google在这方面提供的接口。现在既然第三方提出了这样一个需求,不得不重新再好好去研究一下源码,没想到真的可以到达这样的目的。 因为现在在家没有Android源码,源码中定义这个的地方也就没法说了,直接说怎么去设置吧!其实很简单,在应用的menifest文件中指定就可以了,在 <manifest> 元素中包含android:installLocation 属性,设置其值为"internalOnly"即可,如下: <manifest xmlns:android=”http://schemas.android.com/apk/res/android” android:installLocation=”internalOnly” … > android:installLocation 还有另外两个属性值:"preferExternal"和"auto",根据字面意思大概也能明白是什么意思了,还是说明如下: 如果你定义了 "preferExternal",意味着你要求你的应用安装至扩展存储,但是系统不能保证应用肯定会安装至扩展存储。如果扩展存储没有空间了,系统将把应用安装到内置存储。用户可以在两个位置之间移动你的应用。 如果你定义了 "auto",表示你的应用可能会安装在扩展存储,但是对安装位置没有特别的偏好。系统将基于很多因素决定你的应用安装到哪里。用户同样可以将应用在两个位置之间移动。
觉得以前的邮箱太长,于是又重新注册了一个新的,因为之前的各种账号都是用之前的那个邮箱注册的,所以换邮箱确实是一个比较浩大的工程,到目前为止基本上把一些网站的账号迁移过来了,今天想着把MSN的ID也换成现在的邮箱。在网上搜了一下,好像一致的结论都是MSN的ID不能改,除非重新注册一个。实在不想用以前的邮箱作为账号了,又不想重新注册一个,毕竟那么多好友在里面,于是抱着试试看的心态在MSN的网站上摸索了一下,发现其实是可以改的!步骤也很简单,有图有真相: 先在网页上登陆MSN,在网页右上角点击用户用户名,然后在弹出菜单中选择“账户”: 在下一个页面就看到真相了,在账户ID后面点更改就可以修改账户名称了: 最后一张图,输入你新的ID就可以了,然后去邮箱验证一下就OK了!
用户退出应用前给出一个提示是很有必要的,因为可能是用户并不真的想退出,而只是一不小心按下了返回键,大部分应用的做法是在应用退出去前给出一个Dialog,我觉得这样不太友好,用户还得移动手指去按dialog中的按钮。个人觉得“再按一次返回键退出程序”是best practice,实现也很简单,直接上代码: private long exitTime = 0; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN){ if((System.currentTimeMillis()-exitTime) > 2000){ Toast.makeText(getApplicationContext(), “再按一次退出程序”, Toast.LENGTH_SHORT).show(); exitTime = System.currentTimeMillis(); } else { finish(); System.exit(0); } return true; } return super.onKeyDown(keyCode, event); }
近期评论