最终还是决定要写点东西。作为一个不合格的程序员,或者说一个低级码农,我天天做的最多的除了敲一些简单逻辑的代码就是逛各种论坛,注册,Ctrl+C& Ctrl+V。
一天下来了学到了什么?
我实现了我想要的功能啊!
然后呢?那些是你自己的东西吗?你有提高吗?
额.....
我一直拿“不重复发明轮子”来当做借口,但是这么久了,发现这种学习模式真的很有问题;数数自己学到的,留下的东西少之又少。可是我热爱编程,我可以一天都在电脑前看代码,堆代码,逛论坛,找解决方法。于是我又百度谷歌了一阵:如何成为一个好的程序员,怎样做个成功的程序员,程序员成功之路......
看了不少文章,有些都很老了,我感觉我最合适的方法是:多思考,勤写总结;于是乎我来到了我早就注册了的论坛里,开始写我的第一篇博客。
“不重复发明轮子”的确很对,但是不能拿它来当做骗自己的借口,用人家的代码的时候不加以思考,那样只能做个简单的搬运工,低级的码农。而我是想做个编程牛人的,吼吼....所以我要改变,就从写总结开始吧。写总结是很有必要的,说明你有思考这个功能到底是怎么实现的,学会并记了下来,这就是提高。如果你只是使用而不思考,那你做到最好也只是能跟别人做的一样,不可能有你自己的创新。
今年参加了一个移动终端应用大赛,最近一直在搞android。我是一个不折不扣的新手,mars老师的视频才看了几集,到现在连一些基本的控件都不了解。就是在这样的情况下, 我们的应用的功能已经基本实现了,这个应用的编码实现还是我一个人完成的。我就是有新功能自己不会写,就上网搜,搜那种最好有可运行的源码的,简单的看一下,然后修改放到我们的应用里,功能就这样完成了。可是到现在,我真的很心虚,感觉底层的东西根本就不太懂,所以要做一个网上没有的功能,或者说找不到源码的功能就很难实现。
举个例子:我们有个上下滚动的GridView,我想做成水平滑动翻页的,我自己完全没想法;然后我不停的百度,google,论坛,找到了源码,一个自定义的ScroLayout,将原来的GridView分页然后动态家道里边,我就只了解这些,关于ScrollLayout里的内容我是真心不懂;不过功能实现了也就没多想它。可是后来,我们队的“产品经理”跟我说,能不能把这个做成3D的效果,那样我们的应用就更具竞争力了,毕竟这样的效果比较少。我当时就无奈了,经过我一天加通宵的努力,也没有解决,其实就是没有找到合适的源码,自己看也看不懂,是关于绘制,角度之类的东西。我们的应用险些没有做成这个效果,还好“产品经理”的一个朋友发现了合适的源码,我拿来研究了下,这样才实现了3D翻页的效果.....
分享下我昨晚到今天的收获吧:
1.实现将drawable里是图片存入sd卡中的某个目录下;
2.利用系统自带的google map实现路线查询功能;
3.改变menu的背景色;
1,
直接上代码:
<span style="font-size:14px;">private Bitmap bitmap;
private final static String ALBUM_PATH
= Environment.getExternalStorageDirectory() + "/tk.sweetvvck/"; //后面加的是你期望的文件名
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.share_img);
try {
saveFile(bitmap, "share_img.jpg");
} catch (IOException e1) {
e1.printStackTrace();
}
public void saveFile(Bitmap bm, String fileName) throws IOException {
File dirFile = new File(ALBUM_PATH);
if(!dirFile.exists()){
dirFile.mkdir();
}
File myCaptureFile = new File(ALBUM_PATH + fileName);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(myCaptureFile));
bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
bos.flush();
bos.close();
}
</span>
<span style="font-size:14px;">bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.share_img);
</span>
这段代码的意思是从drawable中获得一个Bitmap对象;
bm.compress(Bitmap.CompressFormat.JPEG, 80, bos);
这段代码的意思是将bitmap对象压缩写入输出流里
其它的都没什么,一些文件,I/O操作
2, 代码:
Intent i = new Intent(Intent.ACTION_VIEW, Uri
.parse("http://maps.google.com/maps?f=d&saddr=&daddr=" + lecture.getHost()
)); //后边加的是目的地的地址
startActivity(i);
吼吼,就这么简单。运行的时候系统会弹出一个选择使用谷歌地图或者浏览器版的dialog,如果没有安装google map,就直接用浏览器打开网页版的地图。
当然也可以固定用google map打开,需要这样:
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK & Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
i.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");
当然,在这之前我们先做一下判断,看手机是否安装了google map 比较好
protected boolean checkGoogleMap(){
boolean isInstallGMap = false;
List<PackageInfo> packs = getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if (p.versionName == null) { // system packages
continue;
}
if ("com.google.android.apps.maps".equals(p.packageName)) {
isInstallGMap = true;
break;
}
}
return isInstallGMap;
}
3, 代码:
menu.add(0, 0, 0, "退出").setIcon(R.drawable.info);
首先在string.xml中定义颜色:
<drawable name="info">#CCCCCC</drawable>
好了,就写这么多,虽然代码很少,但是解决了问题,吼吼.....