现在的位置: 首页 > 综合 > 正文

我的第一篇博客

2017年03月04日 ⁄ 综合 ⁄ 共 3339字 ⁄ 字号 评论关闭

  最终还是决定要写点东西。作为一个不合格的程序员,或者说一个低级码农,我天天做的最多的除了敲一些简单逻辑的代码就是逛各种论坛,注册,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>

好了,就写这么多,虽然代码很少,但是解决了问题,吼吼.....

抱歉!评论已关闭.